python中发送带附件的邮件,python SMTP实现发送带附件电子邮件
本文實例為大家分享了python SMTP發送帶附件電子郵件的具體代碼,供大家參考,具體內容如下
可采用email模塊發送電子郵件附件。發送一個未知MIME類型的文件附件其基本思路如下:
1. 構造MIMEMultipart對象做為根容器
2. 構造MIMEText對象做為郵件顯示內容并附加到根容器
3. 構造MIMEBase對象做為文件附件內容并附加到根容器
a. 讀入文件內容并格式化
b. 設置附件頭
4. 設置根容器屬性
5. 得到格式化后的完整文本
6. 用smtp發送郵件
具體內容參見 14章第6節 “email: Parsing and Composing Mails”。發送一個未知MIME類型的文件附件實例代碼如下:
import smtplib
import email.MIMEMultipart
import email.MIMEText
import email.MIMEBase
import os.path
From = "sender address"
To = "recipients"
file_name = "file name"
server = smtplib.SMTP("smtp server address")
server.login("username","password") #僅smtp服務器需要驗證時
# 構造MIMEMultipart對象做為根容器
main_msg = email.MIMEMultipart.MIMEMultipart()
# 構造MIMEText對象做為郵件顯示內容并附加到根容器
text_msg = email.MIMEText.MIMEText("this is a test text to text mime")
main_msg.attach(text_msg)
# 構造MIMEBase對象做為文件附件內容并附加到根容器
contype = 'application/octet-stream'
maintype, subtype = contype.split('/', 1)
## 讀入文件內容并格式化
data = open(file_name, 'rb')
file_msg = email.MIMEBase.MIMEBase(maintype, subtype)
file_msg.set_payload(data.read( ))
data.close( )
email.Encoders.encode_base64(file_msg)
## 設置附件頭
basename = os.path.basename(file_name)
file_msg.add_header('Content-Disposition',
'attachment', filename = basename)
main_msg.attach(file_msg)
# 設置根容器屬性
main_msg['From'] = From
main_msg['To'] = To
main_msg['Subject'] = "attach test "
main_msg['Date'] = email.Utils.formatdate( )
# 得到格式化后的完整文本
fullText = main_msg.as_string( )
# 用smtp發送郵件
try:
server.sendmail(From, To, fullText)
finally:
server.quit()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持聚米學院。
總結
以上是生活随笔為你收集整理的python中发送带附件的邮件,python SMTP实现发送带附件电子邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曲面设计步骤pdf_3dmax模渲大师|
- 下一篇: C++之Lambda表达式