Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Beispielcodes für den Python-E-Mail-Versand

Detaillierte Erläuterung des Beispielcodes für den Python-E-Mail-Versand

高洛峰
高洛峰Original
2017-02-23 16:41:051627Durchsuche

本篇文章主要介绍了python 发送邮件实例代码,详细的介绍了各种方式发送邮件,包括文件形式的邮件、HTML形式的邮件、带图片的HTML邮件等,有兴趣的可以了解一下。

python 发送邮件实例

文件形式的邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimetext import MIMEText 
from emailheader import Header 
 
sender = '***' 
receiver = '***' 
subject = 'python email test' 
smtpserver = 'smtpcom' 
username = '***' 
password = '***' 
 
msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8',单字节字符不需要 
msg['Subject'] = Header(subject, 'utf-8') 
 
smtp = smtplibSMTP() 
smtpconnect('smtpcom') 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgas_string()) 
smtpquit()

HTML形式的邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimetext import MIMEText 
 
sender = '***' 
receiver = '***' 
subject = 'python email test' 
smtpserver = 'smtpcom' 
username = '***' 
password = '***' 
 
msg = MIMEText(&#39;<html><h1>你好</h1></html>&#39;,&#39;html&#39;,&#39;utf-8&#39;) 
 
msg[&#39;Subject&#39;] = subject 
 
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgas_string()) 
smtpquit()

带图片的HTML邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimemultipart import MIMEMultipart 
from emailmimetext import MIMEText 
from emailmimeimage import MIMEImage 
 
sender = &#39;***&#39; 
receiver = &#39;***&#39; 
subject = &#39;python email test&#39; 
smtpserver = &#39;smtpcom&#39; 
username = &#39;***&#39; 
password = &#39;***&#39; 
 
msgRoot = MIMEMultipart(&#39;related&#39;) 
msgRoot[&#39;Subject&#39;] = &#39;test message&#39; 
 
msgText = MIMEText(&#39;<b>Some <i>HTML</i> text</b> and an image<br><img src="cid:image1"><br>good!&#39;,&#39;html&#39;,&#39;utf-8&#39;) 
msgRootattach(msgText) 
 
fp = open(&#39;h:\\python\\jpg&#39;, &#39;rb&#39;) 
msgImage = MIMEImage(fpread()) 
fpclose() 
 
msgImageadd_header(&#39;Content-ID&#39;, &#39;<image1>&#39;) 
msgRootattach(msgImage) 
 
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgRootas_string()) 
smtpquit()

带附件的邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimemultipart import MIMEMultipart 
from emailmimetext import MIMEText 
from emailmimeimage import MIMEImage 
 
sender = &#39;***&#39; 
receiver = &#39;***&#39; 
subject = &#39;python email test&#39; 
smtpserver = &#39;smtpcom&#39; 
username = &#39;***&#39; 
password = &#39;***&#39; 
 
msgRoot = MIMEMultipart(&#39;related&#39;) 
msgRoot[&#39;Subject&#39;] = &#39;test message&#39; 
 
#构造附件 
att = MIMEText(open(&#39;h:\\python\\jpg&#39;, &#39;rb&#39;)read(), &#39;base64&#39;, &#39;utf-8&#39;) 
att["Content-Type"] = &#39;application/octet-stream&#39; 
att["Content-Disposition"] = &#39;attachment; filename="jpg"&#39; 
msgRootattach(att) 
     
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgRootas_string()) 
smtpquit()

群邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimetext import MIMEText 
 
sender = &#39;***&#39; 
receiver = [&#39;***&#39;,&#39;****&#39;,……] 
subject = &#39;python email test&#39; 
smtpserver = &#39;smtpcom&#39; 
username = &#39;***&#39; 
password = &#39;***&#39; 
 
msg = MIMEText(&#39;你好&#39;,&#39;text&#39;,&#39;utf-8&#39;) 
 
msg[&#39;Subject&#39;] = subject 
 
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgas_string()) 
smtpquit()

各种元素都包含的邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimemultipart import MIMEMultipart 
from emailmimetext import MIMEText 
from emailmimeimage import MIMEImage 
 
sender = &#39;***&#39; 
receiver = &#39;***&#39; 
subject = &#39;python email test&#39; 
smtpserver = &#39;smtpcom&#39; 
username = &#39;***&#39; 
password = &#39;***&#39; 
 
# Create message container - the correct MIME type is multipart/alternative 
msg = MIMEMultipart(&#39;alternative&#39;) 
msg[&#39;Subject&#39;] = "Link" 
 
# Create the body of the message (a plain-text and an HTML version) 
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.php.cn/" 
html = """\ 
<html> 
 <head></head> 
 <body> 
  <p>Hi!<br> 
    How are you?<br> 
    Here is the <a href="http://wwwpythonorg">link</a> you wanted 
  </p> 
 </body> 
</html> 
""" 
 
# Record the MIME types of both parts - text/plain and text/html 
part1 = MIMEText(text, &#39;plain&#39;) 
part2 = MIMEText(html, &#39;html&#39;) 
 
# Attach parts into message container 
# According to RFC 2046, the last part of a multipart message, in this case 
# the HTML message, is best and preferred 
msgattach(part1) 
msgattach(part2) 
#构造附件 
att = MIMEText(open(&#39;h:\\python\\jpg&#39;, &#39;rb&#39;)read(), &#39;base64&#39;, &#39;utf-8&#39;) 
att["Content-Type"] = &#39;application/octet-stream&#39; 
att["Content-Disposition"] = &#39;attachment; filename="jpg"&#39; 
msgattach(att) 
   
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgas_string()) 
smtpquit()

基于SSL的邮件

#!/usr/bin/env python3 
#coding: utf-8 
import smtplib 
from emailmimetext import MIMEText 
from emailheader import Header 
sender = &#39;***&#39; 
receiver = &#39;***&#39; 
subject = &#39;python email test&#39; 
smtpserver = &#39;smtpcom&#39; 
username = &#39;***&#39; 
password = &#39;***&#39; 
 
msg = MIMEText(&#39;你好&#39;,&#39;text&#39;,&#39;utf-8&#39;)#中文需参数‘utf-8&#39;,单字节字符不需要 
msg[&#39;Subject&#39;] = Header(subject, &#39;utf-8&#39;) 
 
smtp = smtplibSMTP() 
smtpconnect(&#39;smtpcom&#39;) 
smtpehlo() 
smtpstarttls() 
smtpehlo() 
smtpset_debuglevel(1) 
smtplogin(username, password) 
smtpsendmail(sender, receiver, msgas_string()) 
smtpquit()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。

更多详解python 发送邮件实例代码相关文章请关注PHP中文网!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn