python中的smtplib模組是內建的傳送郵件模組。
在使用smtp模組傳送郵件之前,需要先開啟郵箱的smtp服務
以qq郵箱為例:
設定-賬戶-smtp服務,根據提示開通smtp服務,記錄授權碼
smtp = smtplib.smtp_ssl(host=
"smtp.qq.com"
, port=
465)
smtp.login(user=
'',password=
'')
3.1.1 匯入構造文字郵件的類from email.mime.text import mimetext
3.1.2 編輯郵件資訊msg = mimetext(_text=
"0612的測試郵件"
, _charset=
'utf8'
)
3.2.1 讀取html檔案內容with
open
(file
=r'******.html'
,mode=
'r',encoding=
'utf8'
)as f:
content=f.read(
)
3.2.2 將html檔案內容新增到郵件正文msg = mimetext(_text=content, _charset=
'utf8'
,_subtype=
'html'
)msg[
'subject']=
'測試郵件'
msg[
"to"]=
"******.com"
msg[
"from"]=
"******.com"
3.3.1 模組匯入
mimemultipart
類用於構造多元件郵件
from email.mime.multipart import mimemultipart
3.3.2 構造多元件郵件msg = mimemultipart(3.3.4 編輯郵件的文字內容)msg[
'subject']=
'測試郵件'
msg[
"to"]=
"******@163.com"
msg[
"from"]=
"******@qq.com"
編輯完成後,需要通過msg.attach(text)
將編輯好的文字內容新增到郵件中
text=mimetext(_text=
"這是乙個帶附件的郵件"
,_charset=
'utf8'
)msg.attach(text)
3.3.5 構造附件
3.3.5.1 讀取郵件內容
這裡讀取檔案的時候需要使用rb
模式
with
open
(file
=r'd:\***xx.html'
,mode=
'rb'
)as f:
data=f.read(
)
3.3.5.2 構造附件並新增至郵件
msg.attach(report)
3.3.5.3 給附件新增header
report.add_header(
'content-disposition'
,'attachment'
, filename=
'report.html'
)
smtp.send_message(msg=msg,from_addr=
'',to_addrs='')
# 單個收件人
smtp.send_message(msg=msg,from_addr=
'',to_addrs=
['收件人一'
,'收件人二'])
# 多個收件人
import smtplib
from email.mime.multipart import mimemultipart
from email.mime.text import mimetext
"""傳送帶附件郵件的完整**
"""class
handleemail()
:def
handle_email
(self)
:# step1 連線smtp伺服器並登陸
smtp = smtplib.smtp_ssl(host=
'smtp.qq.com'
, port=
465)
smtp.login(user=
'***[email protected]'
, password=
'***xx'
)# 構造多元件郵件並完善郵件描述性資訊
msg = mimemultipart(
) msg[
'subject']=
'帶附件的郵件-01'
msg[
'from']=
'******@qq.com'
msg[
'to']=
'***[email protected]'
# 新增郵件的文字內容
text = mimetext(_text=
'這是郵件正文的內容'
, _charset=
'utf8'
) msg.attach(text)
# 新增附件和附件header
with
open
(file
=r'******xx\report.html'
, mode=
'rb'
)as f:
content = f.read(
) attachment.add_header(
'content-disposition'
,'attachment'
, filename=
'report.html'
) msg.attach(attachment)
# 傳送郵件
smtp.send_message(msg=msg, from_addr=
'******[email protected]'
, to_addrs=
'***[email protected]'
)if __name__ ==
'__main__'
: e_mail = handleemail(
) e_mail.handle_email(
)
python傳送帶附件郵件
1.不包括附件的郵件 coding utf 8 import smtplib import string 傳送普通的文字郵件 郵件smtp的位址 host smtp.163.com 定義郵件的標題 subject 這是郵件標題 發件人 from 163.com 收件人 to qq.com 傳送的郵件...
如何使用Python傳送帶附件的郵件
1 首先要理解乙個常識 rfc rfc the request for comments 是乙個關於internet各種標準的文件,定義了很多的網路協議和資料格式,標準的internet郵件遵從rfc2822 internet message format 等幾個文件,其中rfc822中描述了郵件頭...
Python 傳送帶附件的郵件
usr bin python3 import smtplib from email.mime.text import mimetext from email.mime.multipart import mimemultipart from email.header import header sen...