最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python自動發(fā)送郵件的實現(xiàn)步驟

 更新時間:2026年01月28日 08:57:08   作者:艾派森  
本文介紹了如何使用Python的smtplib和email模塊通過SMTP協(xié)議,實現(xiàn)向QQ郵箱發(fā)送純文本、HTML格式郵件以及帶有附件的功能,包括登錄驗證和代碼示例,需要的朋友可以參考下

發(fā)送普通郵件

 SMTP(Simple Mail Transfer Protocol)是簡單傳輸協(xié)議。

python中對SMTP進(jìn)行了簡單的封裝,可以發(fā)送純文本郵件、HTML 郵件以及帶附件的郵件。兩個核心模塊如下:

email模塊:負(fù)責(zé)構(gòu)建郵件

smtplib模塊:負(fù)責(zé)發(fā)送郵件

常用方法與屬性: 

 如果要使用qq郵箱發(fā)送的話,需要在qq郵箱設(shè)置-賬戶里面開啟POP3/SMTP服務(wù)

 首次開啟需要你用手機號發(fā)送短信,照著做就好了,做完之后會給你一個授權(quán)碼,記著這個授權(quán)碼,寫代碼需要用到,忘記了也可以找回

接著編寫代碼,發(fā)送普通郵件

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_email():
    # 設(shè)置要登錄的郵箱
    smtp_obj = smtplib.SMTP('smtp.qq.com')
    # 登錄郵箱  這里需要填寫你的qq郵箱地址和生成的授權(quán)碼
    smtp_obj.login('xxx@qq.com','spcdwgqkltjsbiah')
    # 編輯內(nèi)容
    mail_text = 'This is Email~ 您要的郵件來啦~~'
    # plain 原生文本模式
    msg_body = MIMEText(mail_text,'plain','utf-8')
    # 設(shè)置從哪發(fā)送的
    msg_body['From'] = Header('xxx','utf-8')  # 設(shè)置發(fā)送人
    msg_body['Subject'] = Header('測試Python自動郵件','utf-8')  # 設(shè)置內(nèi)容主題
    # 發(fā)送郵件  這里第一個郵箱填自己的,第二個填收件人的郵箱地址
    smtp_obj.sendmail('398707160@qq.com','hotelmail@126.com',msg_body.as_string())

if __name__ =='__main__':
    send_email()

發(fā)送HTML郵件

 發(fā)送HTML郵件只需要把發(fā)送的內(nèi)容換成html代碼即可

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_email():
    # 設(shè)置要登錄的郵箱
    smtp_obj = smtplib.SMTP('smtp.qq.com')
    # 登錄郵箱  這里需要填寫你的qq郵箱地址和生成的授權(quán)碼
    smtp_obj.login('xxx@qq.com','spcdwgqkltjsbiah')
    # 編輯內(nèi)容
    mail_text = '''
    <h1 style='color:red'>這是一個HTML郵件通知</h1>
    <p>這個是郵件的內(nèi)容</p>
    <p><a >這個是鏈接</a></p>
    '''
    # plain 原生文本模式
    msg_body = MIMEText(mail_text,'plain','utf-8')
    # 設(shè)置從哪發(fā)送的
    msg_body['From'] = Header('xxx','utf-8')  # 設(shè)置發(fā)送人
    msg_body['Subject'] = Header('測試Python自動郵件','utf-8')  # 設(shè)置內(nèi)容主題
    # 發(fā)送郵件  這里第一個郵箱填自己的,第二個填收件人的郵箱地址
    smtp_obj.sendmail('398707160@qq.com','hotelmail@126.com',msg_body.as_string())

if __name__ =='__main__':
    send_email()

發(fā)送附件郵件-smtplib

有時郵件的內(nèi)容只靠文本是無法完全描述內(nèi)容。這時就可以考慮發(fā) 送附件來攜帶內(nèi)容。具體方法如下:

設(shè)置登錄服務(wù)器 、登錄郵箱、增加附件 、設(shè)置請求頭、 發(fā)送郵件

import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.header import Header

def send_file_email():
    # 設(shè)置郵箱服務(wù)器
    stmp_obj = smtplib.SMTP('smtp.qq.com')
    # 登錄郵箱
    stmp_obj.login('xxx@qq.com','spcdwgqkltjsbiah')
    # 設(shè)置郵件內(nèi)容
    # 文本
    msg_txt = MIMEText('這個帶有附件的郵件','plain','utf-8')
    # 附件  打開你要發(fā)送的文件
    msg_file = MIMEApplication(open('./base_data/backg.jpg','rb').read())
    msg_file.add_header('Content-Disposition','attachment',filename='bg.jpg')
    # 封裝要發(fā)送的數(shù)據(jù)
    part = MIMEMultipart()
    part.attach(msg_txt)
    part.attach(msg_file)
    # 設(shè)置郵件其它信息
    part['From'] = Header('xx','utf-8')
    part['Subject'] = Header('附件郵件','utf-8')
    # 發(fā)送郵件
    stmp_obj.sendmail('xxx@qq.com','hotelmail@126.com',part.as_string())

if __name__ =='__main__':
    send_file_email()

批量發(fā)送郵件-smtplib

這里以發(fā)送工資條為例

工資數(shù)據(jù)如下: 

from email.header import Header
from email.mime.text import MIMEText
import smtplib

from openpyxl import load_workbook

def send_many_mail():
     # 設(shè)置登錄郵箱服務(wù)器
    smtp_obj = smtplib.SMTP('smtp.qq.com')
    # 登錄郵箱
    smtp_obj.login('xxx@qq.com','spcdwgqkltjsbiah')
    # 打開excel文件
    wb = load_workbook('./base_data/工資數(shù)據(jù).xlsx',data_only=True)
    # 激活工作簿
    sh = wb.active
    # 讀取數(shù)據(jù)-遍歷
    for i,r in enumerate(sh.iter_rows()):
        if i != 0:
            # 編輯內(nèi)容
            msg_txt = f'''
            <h3>您好:{r[1].value}</h3>
            <p>請查收2030年12月工資條詳情:</p>
            <table border="1">
            <tr>
                <td>工號</td>
                <td>姓名</td>
                <td>部門</td>
                <td>基本工資</td>
                <td>提成</td>
                <td>加班工資</td>
                <td>社??鄢?lt;/td>
                <td>考勤扣除</td>
                <td>應(yīng)發(fā)工資</td>
                <td>郵箱</td>
            </tr>
            <tr>
                <td>{r[0].value}</td>
                <td>{r[1].value}</td>
                <td>{r[2].value}</td>
                <td>{r[3].value}</td>
                <td>{r[4].value}</td>
                <td>{r[5].value}</td>
                <td>{r[6].value}</td>
                <td>{r[7].value}</td>
                <td>{r[8].value}</td>
                <td>{r[9].value}</td>
            </tr>
        </table>
            '''
            msg =  MIMEText(msg_txt,'html','utf-8')
            # 設(shè)置郵件其他信息
            msg['From'] = Header('財務(wù)部','utf-8')
            msg['Subject'] = Header('工資條','utf-8')
            #發(fā)送郵件
            smtp_obj.sendmail('xxx@qq.com',{r[9].value},msg.as_string())
            print(f'{r[1].value} 工資條發(fā)送成功!!')
if __name__ =='__main__':
    send_many_mail()

發(fā)送郵件-zmail

 Zmail的優(yōu)勢

1 自動填充大多數(shù)導(dǎo)致服務(wù)端拒信的頭信息(From To LocalHost之類的)

2 將一個字典映射為email,構(gòu)造信件就像構(gòu)造字典一樣簡單

3 自動尋找郵件服務(wù)商端口號地址,自動選擇合適的協(xié)議(經(jīng)過認(rèn)證的)

安裝:pip install zmail

發(fā)送的消息以字典發(fā)送,包含的key:

subject 郵件主題

from 發(fā)送人

content_text 郵件內(nèi)容-文本

content_html 郵件內(nèi)容-HTML

attachments 郵件內(nèi)容-附件,可寫多個 

import zmail
def send_text():
    # 登錄郵箱
    server = zmail.server('xxx@qq.com','spcdwgqkltjsbiah')
    # 編寫內(nèi)容
    info = {
        'from':'笨笨的張小白',
        'subject':'測試zmail模塊',
        'content_text':'這個是zmail郵件信息'
    }
    # 發(fā)送郵件
    server.send_mail('hotelmail@126.com',info)
def send_html():
    # 登錄郵箱
    server = zmail.server('xxx@qq.com','spcdwgqkltjsbiah')
    # 編寫內(nèi)容
    info = {
        'from':笨笨的張小白',
        'subject':'測試zmail模塊',
        'content_html':'<h1>這個是zmail郵件信息</h1>'
    }
    # 發(fā)送郵件
    server.send_mail('hotelmail@126.com',info)
def send_file():
    # 登錄郵箱
    server = zmail.server('xxx@qq.com','spcdwgqkltjsbiah')
    # 編寫內(nèi)容
    info = {
        'from':'笨笨的張小白',
        'subject':'測試zmail模塊',
        'content_html':'<h1>這個是zmail郵件信息</h1>',
        'attachments':[r'.\base_data\backg.jpg']
    }
    # 發(fā)送郵件
    server.send_mail('hotelmail@126.com',info)
def get_email():
    # 登錄郵箱
    server = zmail.server('xxx@qq.com','tzteewnmyfqacbce')
    email = server.get_latest()
    print(email.get('subject'))
    print(email.get('from'))
    print(email.get('content_html'))
    print(email.get('content_text'))
    
if __name__ == '__main__':
    # send_text()
    # send_html()
    # send_file()
    get_email()

以上就是使用Python自動發(fā)送郵件的實現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Python自動發(fā)送郵件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中文件讀取操作漏洞深度解析與防護(hù)指南

    Python中文件讀取操作漏洞深度解析與防護(hù)指南

    在Web應(yīng)用開發(fā)中,文件操作是最基礎(chǔ)也最危險的功能之一,這篇文章將全面剖析Python環(huán)境中常見的文件讀取漏洞類型,成因及防護(hù)方案,感興趣的小伙伴可以了解下
    2025-06-06
  • Django模型修改及數(shù)據(jù)遷移實現(xiàn)解析

    Django模型修改及數(shù)據(jù)遷移實現(xiàn)解析

    這篇文章主要介紹了Django模型修改及數(shù)據(jù)遷移實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 基于Python實現(xiàn)計算納什均衡的示例詳解

    基于Python實現(xiàn)計算納什均衡的示例詳解

    納什均衡是一種博弈論中的概念,它描述了一種平衡狀態(tài),其中每個參與者都不能通過獨立改變其決策來提高自己的利益。本文就來用Python中的Nashpy和PuLP實現(xiàn)計算納什均衡,感興趣的可以了解一下
    2023-02-02
  • python調(diào)用API實現(xiàn)智能回復(fù)機器人

    python調(diào)用API實現(xiàn)智能回復(fù)機器人

    這篇文章主要為大家詳細(xì)介紹了python調(diào)用API實現(xiàn)智能回復(fù)機器人,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python實現(xiàn)批量視頻分幀、保存視頻幀

    python實現(xiàn)批量視頻分幀、保存視頻幀

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)批量視頻分幀、保存視頻幀,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python中WebService客戶端接口調(diào)用及身份驗證的問題

    Python中WebService客戶端接口調(diào)用及身份驗證的問題

    這篇文章主要介紹了Python中WebService客戶端接口調(diào)用及身份驗證的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程

    python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程

    python中的import語句是用來導(dǎo)入模塊的,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解

    Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解

    這篇文章主要介紹了Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 教你如何用Python實現(xiàn)人臉識別(含源代碼)

    教你如何用Python實現(xiàn)人臉識別(含源代碼)

    Python可以從圖像或視頻中檢測和識別你的臉.人臉檢測與識別是計算機視覺領(lǐng)域的研究熱點之一.人臉識別的應(yīng)用包括人臉解鎖、安全防護(hù)等,醫(yī)生和醫(yī)務(wù)人員利用人臉識別來獲取病歷和病史,更好地診斷疾病,需要的朋友可以參考下
    2021-06-06
  • python寫xml文件的操作實例

    python寫xml文件的操作實例

    這篇文章主要介紹了python寫xml文件的操作實例,是非常常見的實用技巧,需要的朋友可以參考下
    2014-10-10

最新評論

营山县| 溧水县| 广宗县| 大石桥市| 和硕县| 南丰县| 陕西省| 通河县| 清徐县| 涟水县| 友谊县| 梨树县| 博爱县| 沙洋县| 永兴县| 铜鼓县| 十堰市| 曲松县| 子洲县| 永川市| 嵊泗县| 香河县| 拉萨市| 菏泽市| 唐海县| 揭东县| 襄汾县| 兴义市| 土默特右旗| 乐清市| 崇礼县| 彝良县| 景德镇市| 黑龙江省| 措美县| 蛟河市| 汤阴县| 商洛市| 乌兰察布市| 科尔| 灌云县|