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

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

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

發(fā)送普通郵件

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

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

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

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

常用方法與屬性: 

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

 首次開啟需要你用手機(jī)號(hào)發(fā)送短信,照著做就好了,做完之后會(huì)給你一個(gè)授權(quán)碼,記著這個(gè)授權(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自動(dòng)郵件','utf-8')  # 設(shè)置內(nèi)容主題
    # 發(fā)送郵件  這里第一個(gè)郵箱填自己的,第二個(gè)填收件人的郵箱地址
    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'>這是一個(gè)HTML郵件通知</h1>
    <p>這個(gè)是郵件的內(nèi)容</p>
    <p><a >這個(gè)是鏈接</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自動(dòng)郵件','utf-8')  # 設(shè)置內(nèi)容主題
    # 發(fā)送郵件  這里第一個(gè)郵箱填自己的,第二個(gè)填收件人的郵箱地址
    smtp_obj.sendmail('398707160@qq.com','hotelmail@126.com',msg_body.as_string())

if __name__ =='__main__':
    send_email()

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

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

設(shè)置登錄服務(wù)器 、登錄郵箱、增加附件 、設(shè)置請(qǐng)求頭、 發(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('這個(gè)帶有附件的郵件','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>請(qǐng)查收2030年12月工資條詳情:</p>
            <table border="1">
            <tr>
                <td>工號(hào)</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('財(cái)務(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 自動(dòng)填充大多數(shù)導(dǎo)致服務(wù)端拒信的頭信息(From To LocalHost之類的)

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

3 自動(dòng)尋找郵件服務(wù)商端口號(hào)地址,自動(dòng)選擇合適的協(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)容-附件,可寫多個(gè) 

import zmail
def send_text():
    # 登錄郵箱
    server = zmail.server('xxx@qq.com','spcdwgqkltjsbiah')
    # 編寫內(nèi)容
    info = {
        'from':'笨笨的張小白',
        'subject':'測試zmail模塊',
        'content_text':'這個(gè)是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>這個(gè)是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>這個(gè)是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自動(dòng)發(fā)送郵件的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了Python中WebService客戶端接口調(diào)用及身份驗(yàn)證的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解

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

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

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

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

    python寫xml文件的操作實(shí)例

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

最新評(píng)論

太白县| 宁陕县| 灌阳县| 河津市| 永吉县| 麻城市| 昌邑市| 齐齐哈尔市| 扬中市| 五家渠市| 平阳县| 六安市| 南宫市| 隆子县| 遂川县| 兴义市| 鹤峰县| 北票市| 宜兰市| 福贡县| 志丹县| 循化| 黑山县| 八宿县| 阿拉善盟| 济南市| 清徐县| 农安县| 印江| 乌拉特前旗| 钟祥市| 江北区| 九龙城区| 页游| 凌海市| 隆回县| 化州市| 武穴市| 阿勒泰市| 佛学| 诸城市|