欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 發(fā)送SMTP郵件的簡單教程

 更新時間:2021年06月24日 08:41:29   作者:Captain_Li  
SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協(xié)議,Python內(nèi)置對SMTP的支持,可以發(fā)送純文本文件,HTML郵件以及附帶文件。本文講解如何使用python發(fā)送郵件

一、兩個模塊

Python使用SMTP發(fā)送郵件的兩個模塊:smtplib模塊、email模塊。

  • smtplib:負責發(fā)送郵件
  • email:負責構(gòu)建郵件

二、SMTP端口

1)未加密端口,smtplib.SMTP接口,端口:25
2)使用SSL加密,smtplib.SMTP_SSL接口,端口:465
3)使用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ā)送者的密碼,這個密碼不是你的QQ登陸密碼,而是你在QQ郵箱設(shè)置開啟SMTP之后的一個授權(quán)碼

4、發(fā)送郵件

s.sendmail(msg_from, msg_to, msg.as_string())

msg_from:發(fā)送方
msg_to:收件方
msg.as_string():要發(fā)送的消息

四、常用場景

1、純文本郵件

import smtplib
from email.mime.text import MIMEText
from 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ā)送測試...'
 
# 郵件主題
subject = "test"
 
# 生成一個MIMEText對象(還有一些其它參數(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 smtplib
from email.mime.text import MIMEText
from 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ā)送測試...</p>
<p><a  rel="external nofollow" >這是一個鏈接</a></p>
"""
 
# 郵件主題
subject = "test"
 
# 生成一個MIMEText對象(
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 smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from 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"
 
# 生成一個MIMEMultipart對象(
msg = message = MIMEMultipart()
 
# 郵件文本
message.attach(MIMEText('這是菜鳥教程Python 郵件發(fā)送測試……', '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郵件的簡單教程的詳細內(nèi)容,更多關(guān)于Python 發(fā)送郵件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文解決django 2.2與mysql兼容性問題

    一文解決django 2.2與mysql兼容性問題

    Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,視圖V和模版T。這篇文章主要介紹了解決django 2.2與mysql兼容性問題,需要的朋友可以參考下
    2020-07-07
  • Python中使用logging和traceback模塊記錄日志和跟蹤異常

    Python中使用logging和traceback模塊記錄日志和跟蹤異常

    今天小編就為大家分享一篇關(guān)于Python中使用logging和traceback模塊記錄日志和跟蹤異常,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Python使用future處理并發(fā)問題方案詳解

    Python使用future處理并發(fā)問題方案詳解

    從Python3.2引入的concurrent.futures模塊,Python2.5以上需要在pypi中安裝futures包。future指一種對象,表示異步執(zhí)行的操作。這個概念的作用很大,是concurrent.futures模塊和asyncio包的基礎(chǔ)
    2023-02-02
  • 把大數(shù)據(jù)數(shù)字口語化(python與js)兩種實現(xiàn)

    把大數(shù)據(jù)數(shù)字口語化(python與js)兩種實現(xiàn)

    當出現(xiàn)萬以上的整型數(shù)字時,經(jīng)常要把它們口語化比較直觀。下面分享兩段代碼,python與js的
    2013-02-02
  • 基于python實現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    基于python實現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

    這篇文章主要介紹了基于python實現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • python實現(xiàn)爬山算法的思路詳解

    python實現(xiàn)爬山算法的思路詳解

    爬山算法會收斂到局部最優(yōu),解決辦法是初始值在定義域上隨機取亂數(shù)100次,總不可能100次都那么倒霉。這篇文章主要介紹了python實現(xiàn)爬山算法的思路詳解,需要的朋友可以參考下
    2019-04-04
  • Django與pyecharts結(jié)合的實例代碼

    Django與pyecharts結(jié)合的實例代碼

    這篇文章主要介紹了Django與pyecharts結(jié)合的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python 實現(xiàn)的車牌識別項目

    python 實現(xiàn)的車牌識別項目

    這篇文章主要介紹了python 實現(xiàn)的車牌識別項目,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法

    python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法

    今天小編就為大家分享一篇python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python運行DLL文件的方法

    Python運行DLL文件的方法

    這篇文章主要介紹了Python運行DLL文件的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01

最新評論