1. 程式人生 > >python之路:發附帶文件的郵件

python之路:發附帶文件的郵件

ron send lena -s part 文件 它的 sub swd

發郵件的思路(借用第三方服務):

1、模擬服務器其中有:服務器地址,發送者地址、發送者的密碼

2、創建一個帶附件的實例:1、創建一個massage 2、massage包括發送者的地址、接受者的地址、標題

3、對正文轉化為文本模式,MIMEText函數,它的參數有:郵件的內容或文件(文檔、視頻、圖片這一些你都要讀取文件才能發送)名)、郵件的格式、utf-8

4、添加正文:用attach函數,可以運用多個attach函數傳遞文件

5、發郵件:進入服務端(登錄)login登錄函數、發送sendmail發送),需要的參數有:發送的地址、接收者、message.as_string()

import

smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

#模擬服務器
#SMTP服務器
SMTPServer="smtp.163.com"
#發郵件的地址
Sender="xxxx@163.com"
#發送者郵件的授權密碼
passwd="xxxxx"

# 創建一個帶附件的實例
message = MIMEMultipart()
message[‘From‘] = Sender

message[‘To‘] = "xxxx

@qq.com"
subject = ‘Python SMTP 郵件測試‘
message[‘Subject‘] = subject
# 郵件正文內容
message.attach(MIMEText(‘這是菜鳥教程Python 郵件發送測試……‘, ‘plain‘, ‘utf-8‘))

# 構造附件1

att1 = MIMEText(open(文件名, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)
att1["Content-Type"] = ‘application/octet-stream‘
# 這裏的filename可以任意寫,寫什麽名字,郵件中顯示什麽名字
att1["Content-Disposition"

] = ‘attachment; filename="文件名"‘
message.attach(att1)

# 構造附件2

att2 = MIMEText(open(文件名, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)
att2["Content-Type"] = ‘application/octet-stream‘
att2["Content-Disposition"] = ‘attachment; filename="文件名"‘
message.attach(att2)

try:
mailServer = smtplib.SMTP(SMTPServer, 25) # 25為端口號(郵件),0-1024都被系統占用了
# 登錄郵箱
mailServer.login(Sender, passwd) # 需要的是,郵箱的地址和授權密碼
# 發送文件
mailServer.sendmail(Sender, ["xxxx@qq.com"], message.as_string())
print("郵件發送成功")
except smtplib.SMTPException:
print("Error: 無法發送郵件")

python之路:發附帶文件的郵件