python学习(十四)python操作发送邮件(163邮箱)
生活随笔
收集整理的這篇文章主要介紹了
python学习(十四)python操作发送邮件(163邮箱)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、163郵箱
1、先導入smtplib庫來發(fā)送郵件,導入MIMEText庫用來做純文本的郵件模塊
2、準備發(fā)送郵件參數(shù)
import smtplib from email.mime.text import MIMEText # 發(fā)送郵件相關參數(shù) smtpserver = 'smtp.163.com' # 發(fā)件服務器 port = 0 # 端口 sender = 'zhu1308331523@163.com' # 發(fā)件人郵箱 psw = '*******' # 發(fā)件人密碼 receiver = "214256271@qq.com" # 接收人 ''' 3、編寫郵件主題和正文,正文用的html格式 4、最后調用發(fā)件服務 ''' # 編輯郵件內容 subject = '郵件主題' body = '<p>這是個發(fā)送郵件的正文</p>' # 定義郵件正文為html msg = MIMEText(body, 'html', 'utf-8') msg['from'] = sender msg['to'] = "214256271@qq.com" msg['subject'] = subject # 發(fā)送郵件 smtp = smtplib.SMTP() smtp.connect(smtpserver) # 鏈接服務器 smtp.login(sender, psw) # 登錄 smtp.sendmail(sender, receiver, msg.as_string()) # 發(fā)送 smtp.quit() # 關閉
可能出現(xiàn)的報錯
python smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')
解決辦法:163郵箱開啟POP3/SMTP服務,163郵件會讓我們設置客戶端授權碼代替發(fā)送的密碼填寫進入,就可以發(fā)送成功了
二、帶 附件的發(fā)送郵件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 發(fā)送郵件相關參數(shù)
smtpserver = 'smtp.163.com' # 發(fā)件服務器
port = 0 # 端口
sender = 'zhu1308331523@163.com' # 發(fā)件人郵箱
psw = '******' # 發(fā)件人密碼
receiver = "214256271@qq.com" # 接收人
# 郵件標題
subjext = 'python發(fā)送附件郵件'
# 獲取附件信息
with open('result.html', "rb") as f:
body = f.read().decode()
message = MIMEMultipart()
# 發(fā)送地址
message['from'] = sender
message['to'] = receiver
message['subject'] = subjext
# 正文
body = MIMEText(body, 'html', 'utf-8')
message.attach(body)
# 同一目錄下的文件
att = MIMEText(open('result.html', 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
# filename附件名稱
att["Content-Disposition"] = 'attachment; filename="result.html"'
message.attach(att)
smtp = smtplib.SMTP()
smtp.connect(smtpserver) # 鏈接服務器
smtp.login(sender, psw) # 登錄
smtp.sendmail(sender, receiver, message.as_string()) # 發(fā)送
smtp.quit() # 關閉
三、發(fā)送多個收件人
''' 1.上面都是發(fā)給一個收件人,那么如何一次發(fā)給多個收件人呢?只需改兩個小地方 2.把receiver參數(shù)改成list對象,單個多個都是可以收到的 3、msg["to"]這個參數(shù)不能用list了,得先把receiver參數(shù)轉化成字符串 ''' # receiver = ["214256271@qq.com", "130@qq.com"] # message['to'] = ";".json(receiver)
總結
以上是生活随笔為你收集整理的python学习(十四)python操作发送邮件(163邮箱)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 激活你的Chrome浏览器
- 下一篇: 计算sigma