如何使用Python傳送帶附件的郵件

2021-06-03 05:24:54 字數 1705 閱讀 9539

1、首先要理解乙個常識(rfc)

rfc(the request for comments)是乙個關於internet各種標準的文件,定義了很多的網路協議和資料格式,標準的internet郵件遵從rfc2822(internet message format)等幾個文件,其中rfc822中描述了郵件頭(mail headers)的格式。具體文件在python幫助裡都可以查到全文。

2、其次要熟悉python的幾個模組

關於郵件的有email,smtplib等,關於編碼的有base64,binascii等,傳送郵件的方式就是先根據rfc構造好郵件的各個部分,然後登入到smtp伺服器sendmail就可以了。

3、下面貼** 1

#-*- coding: cp936 -*-23

from

email.header

import

header

4from

email.mimetext

import

mimetext

5from

email.mimemultipart

import

mimemultipart

6import

smtplib, datetime78

#建立乙個帶附件的例項

9msg

=mimemultipart()

1011

#構造附件

12att

=mimetext(open(

'd:\\tc201.rar',

'rb').read(),

'base64',

'gb2312')

13att[

"content-type"]

=''14

att[

"content-disposition"]

='attachment; filename="tc201.rar"'15

msg.attach(att)

1617

#加郵件頭

18msg['to

'] ='

zhousl@***.com

'

19msg[

'from']

='zhousl@***.com

'

20msg[

'subject']

=header(

'冒煙測試結果 ('+

str(datetime.date.today()) +'

)', \21

'gb2312')

22#傳送郵件

23server

=smtplib.smtp(

'smtp

.***.com')24

server.sendmail(msg[

'from

'], msg['to

'], \

25msg.as_string())

26server.close

4、幾個值得注意的地方

1)構造附件時注意採用正確的字符集,這個困惑我好久,開始沒有用gb2312,發過去的壓縮檔案就是壞的;

2)上面的**中沒有包括登入smtp伺服器的指令,而internet上面的smtp伺服器一般都是要求認證的,可以通過smtp.login方法進行登陸

3)sendmail方法中的引數to可以是包含多個位址的元組,這樣可以傳送郵件給多個人了

python傳送帶附件郵件

1.不包括附件的郵件 coding utf 8 import smtplib import string 傳送普通的文字郵件 郵件smtp的位址 host smtp.163.com 定義郵件的標題 subject 這是郵件標題 發件人 from 163.com 收件人 to qq.com 傳送的郵件...

Python 如何傳送html格式或帶附件的郵件。

通過qq郵箱傳送到163郵箱。傳送html的郵件 from email.mime.text import mimetext from email.header import header import smtplib 傳送郵箱賬戶 user qq.com user 163.com 授權碼 passw...

使用python實現傳送帶附件的郵件

python中的smtplib模組是內建的傳送郵件模組。在使用smtp模組傳送郵件之前,需要先開啟郵箱的smtp服務 以qq郵箱為例 設定 賬戶 smtp服務,根據提示開通smtp服務,記錄授權碼 smtp smtplib.smtp ssl host smtp.qq.com port 465 smt...