溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用python怎么實(shí)現(xiàn)在郵件中附加文字、html、圖片等功能

發(fā)布時(shí)間:2021-01-05 15:02:03 來(lái)源:億速云 閱讀:313 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

今天就跟大家聊聊有關(guān)利用python怎么實(shí)現(xiàn)在郵件中附加文字、html、圖片等功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

import smtplib  
from email.mime.multipart import MIMEMultipart  
from email.mime.text import MIMEText  
from email.mime.image import MIMEImage 
from email.header import Header  
  
#設(shè)置smtplib所需的參數(shù)
#下面的發(fā)件人,收件人是用于郵件傳輸?shù)摹?
smtpserver = 'smtp.163.com'
username = 'XXX@163.com'
password='XXX'
sender='XXX@163.com'
#receiver='XXX@126.com'
#收件人為多個(gè)收件人
receiver=['XXX@126.com','XXX@126.com']
 
subject = 'Python email test'
#通過(guò)Header對(duì)象編碼的文本,包含utf-8編碼信息和Base64編碼信息。以下中文名測(cè)試ok
#subject = '中文標(biāo)題'
#subject=Header(subject, 'utf-8').encode()
  
#構(gòu)造郵件對(duì)象MIMEMultipart對(duì)象
#下面的主題,發(fā)件人,收件人,日期是顯示在郵件頁(yè)面上的。
msg = MIMEMultipart('mixed') 
msg['Subject'] = subject
msg['From'] = 'XXX@163.com <XXX@163.com>'
#msg['To'] = 'XXX@126.com'
#收件人為多個(gè)收件人,通過(guò)join將列表轉(zhuǎn)換為以;為間隔的字符串
msg['To'] = ";".join(receiver) 
#msg['Date']='2012-3-16'
 
#構(gòu)造文字內(nèi)容  
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com"  
text_plain = MIMEText(text,'plain', 'utf-8')  
msg.attach(text_plain)  
 
#構(gòu)造圖片鏈接
sendimagefile=open(r'D:\pythontest\testimage.png','rb').read()
image = MIMEImage(sendimagefile)
image.add_header('Content-ID','<image1>')
image["Content-Disposition"] = 'attachment; filename="testimage.png"'
msg.attach(image)
 
#構(gòu)造html
#發(fā)送正文中的圖片:由于包含未被許可的信息,網(wǎng)易郵箱定義為垃圾郵件,報(bào)554 DT:SPM :<p><img src="cid:image1"></p>
html = """
<html> 
 <head></head> 
 <body> 
  <p>Hi!<br> 
    How are you?<br> 
    Here is the <a href="http://www.baidu.com" rel="external nofollow" >link</a> you wanted.<br> 
  </p> 
 </body> 
</html> 
"""  
text_html = MIMEText(html,'html', 'utf-8')
text_html["Content-Disposition"] = 'attachment; filename="texthtml.html"'  
msg.attach(text_html)  
 
 
#構(gòu)造附件
sendfile=open(r'D:\pythontest\1111.txt','rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8') 
text_att["Content-Type"] = 'application/octet-stream' 
#以下附件可以重命名成aaa.txt 
#text_att["Content-Disposition"] = 'attachment; filename="aaa.txt"'
#另一種實(shí)現(xiàn)方式
text_att.add_header('Content-Disposition', 'attachment', filename='aaa.txt')
#以下中文測(cè)試不ok
#text_att["Content-Disposition"] = u'attachment; filename="中文附件.txt"'.decode('utf-8')
msg.attach(text_att)  
    
#發(fā)送郵件
smtp = smtplib.SMTP()  
smtp.connect('smtp.163.com')
#我們用set_debuglevel(1)就可以打印出和SMTP服務(wù)器交互的所有信息。
#smtp.set_debuglevel(1) 
smtp.login(username, password)  
smtp.sendmail(sender, receiver, msg.as_string())  
smtp.quit()

看完上述內(nèi)容,你們對(duì)利用python怎么實(shí)現(xiàn)在郵件中附加文字、html、圖片等功能有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI