Python 發(fā)送SMTP郵件的簡(jiǎn)單教程
Python使用SMTP發(fā)送郵件的兩個(gè)模塊:smtplib模塊、email模塊。
smtplib:負(fù)責(zé)發(fā)送郵件 email:負(fù)責(zé)構(gòu)建郵件 二、SMTP端口1)未加密端口,smtplib.SMTP接口,端口:252)使用SSL加密,smtplib.SMTP_SSL接口,端口:4653)使用TLS加密,端口:587
三、四大步驟1、構(gòu)造郵件內(nèi)容# 純文本msg = MIMEText(content) # 附件msg = MIMEMultipart()2、連接郵件服務(wù)器
s = smtplib.SMTP('smtp.qq.com', 25)3、登陸郵件服務(wù)器
s.login(msg_from, passwd)
msg_from:指發(fā)送者的郵箱
passwd:指發(fā)送者的密碼,這個(gè)密碼不是你的QQ登陸密碼,而是你在QQ郵箱設(shè)置開啟SMTP之后的一個(gè)授權(quán)碼
s.sendmail(msg_from, msg_to, msg.as_string())
msg_from:發(fā)送方msg_to:收件方msg.as_string():要發(fā)送的消息
四、常用場(chǎng)景1、純文本郵件import smtplibfrom email.mime.text import MIMETextfrom email.header import Header # 發(fā)送者msg_from = 'xxxxx@qq.com' # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼passwd = 'xxxxx' # 接受者msg_to = 'xxxx@qq.com' # 郵件文本content = ’Python 郵件發(fā)送測(cè)試...’ # 郵件主題subject = 'test' # 生成一個(gè)MIMEText對(duì)象(還有一些其它參數(shù))msg = MIMEText(content) # 放入郵件主題msg[’Subject’] = Header(subject, ’utf-8’) # 放入發(fā)件人msg[’From’] = msg_from try: # 連接郵件服務(wù)器 s = smtplib.SMTP('smtp.qq.com', 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print(’成功’)except s.SMTPException as e: print(e)finally: s.quit()2、發(fā)送html文本
import smtplibfrom email.mime.text import MIMETextfrom email.header import Header # 發(fā)送者msg_from = 'xxxx@qq.com' # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼passwd = 'xxxx' # 接受者msg_to = 'xxxx@qq.com' # 郵件文本content = '''<p>Python 郵件發(fā)送測(cè)試...</p><p><a rel='external nofollow' >這是一個(gè)鏈接</a></p>''' # 郵件主題subject = 'test' # 生成一個(gè)MIMEText對(duì)象(msg = MIMEText(content, ’html’, ’utf-8’) # 放入郵件主題msg[’Subject’] = Header(subject, ’utf-8’) # 放入發(fā)件人msg[’From’] = msg_from try: # 連接郵件服務(wù)器 s = smtplib.SMTP('smtp.qq.com', 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print(’成功’)except s.SMTPException as e: print(e)finally: s.quit()3、發(fā)送附件
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header # 發(fā)送者msg_from = 'xxxx@qq.com' # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼passwd = 'xxxx' # 接受者msg_to = 'xxxx@qq.com' # 郵件主題subject = 'test' # 生成一個(gè)MIMEMultipart對(duì)象(msg = message = MIMEMultipart() # 郵件文本message.attach(MIMEText(’這是菜鳥教程Python 郵件發(fā)送測(cè)試……’, ’plain’, ’utf-8’)) # 放入郵件主題msg[’Subject’] = Header(subject, ’utf-8’) # 放入發(fā)件人msg[’From’] = msg_from # 添加附件att1 = MIMEText(open(’./wordcloud_singer.py’, ’rb’).read(), ’base64’, ’utf-8’)att1['Content-Type'] = ’application/octet-stream’att1['Content-Disposition'] = ’attachment; filename='test.txt'’msg.attach(att1) try: # 連接郵件服務(wù)器 s = smtplib.SMTP('smtp.qq.com', 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print(’成功’)except s.SMTPException as e: print(e)finally: s.quit()
以上就是Python 發(fā)送SMTP郵件的簡(jiǎn)單教程的詳細(xì)內(nèi)容,更多關(guān)于Python 發(fā)送郵件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決2. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊3. 為什么你的android代碼寫得這么亂4. Java剖析工具YourKit 發(fā)布5.0版本5. 跟我學(xué)XSL(一)第1/5頁6. 使用JSP技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的在線測(cè)試系統(tǒng)的實(shí)例詳解7. Python中內(nèi)建模塊collections如何使用8. 動(dòng)態(tài)設(shè)置django的model field的默認(rèn)值操作步驟9. 開發(fā)效率翻倍的Web API使用技巧10. Docker創(chuàng)建本地鏡像實(shí)現(xiàn)方法解析
