python發(fā)送郵件實(shí)例分享
為了更好的理解郵件發(fā)送功能的實(shí)現(xiàn),要先了解郵件發(fā)送系統(tǒng)的大致流程。首先 電子郵件之間的相互發(fā)送接受就像 郵局郵件發(fā)送一樣,從一個(gè)站點(diǎn)(郵件發(fā)送服務(wù)器)到目的地站點(diǎn)(郵件接收服務(wù)器),然后目的地站點(diǎn)處理收到的郵件,并發(fā)送給接受人。每個(gè)郵件服務(wù)器即擔(dān)任發(fā)送也擔(dān)任接受郵件,并且每個(gè)服務(wù)器地址,端口號,配置等也不同。
其實(shí)發(fā)送郵件的流程就 兩部:
第一:寫郵件
寫好發(fā)送方,接受方
寫好主題
寫好正文(包括附件,圖片等)
把信件整理在一起
第二:發(fā)送郵件
連接發(fā)送郵件服務(wù)器
登錄郵箱
發(fā)送郵件
退出郵箱
代碼部分:
# -*- coding:utf-8 -*- import smtplib from email.header import Header from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText #創(chuàng)建郵件對象,相當(dāng)于信紙 msg = MIMEMultipart() #郵件發(fā)送方 msg['From'] = 'XXXXXXXX.qq.com' #郵件接收方 msg['To'] = '1212112@qq.com' #郵件主題 msg['Subject'] = Header('這是郵箱主題部分', charset='UTF-8')#中文主題 #文本內(nèi)容 txt = '親愛的用戶' part1 = MIMEText(txt, 'plain', 'utf-8') #添加到郵件中 msg.attach(part1) #超文本內(nèi)容,放有圖片,注意src路徑,此為放在同一目錄中 html = '<div><img src="cid:image1">親愛的</div>' #一定要設(shè)置郵件格式,否則可能會亂碼,當(dāng)時(shí)接手別人手中沒加郵件格式的項(xiàng)目,坑了我半天 part2 = MIMEText(html, 'html', 'utf-8') #添加到郵件中 msg.attach(part2) #圖片放到郵件中 # 指定圖片為當(dāng)前目錄 fp = open('test.png', 'rb') msgImage = MIMEImage(fp.read()) fp.close() # 定義圖片 ID,在 HTML 文本中引用 msgImage.add_header('Content-ID', '<image1>') msg.attach(msgImage) #加入附件 att2 = MIMEText('這是附件里的文字', 'base64', 'utf-8') att2["Content-Type"] = 'application/octet-stream' #設(shè)置附件名為runoob.txt att2["Content-Disposition"] = 'attachment; filename="runoob.txt"' #附件放在郵件中 msg.attach(att2) #非ssl方式的smtp(簡單郵件發(fā)送協(xié)議),下面注釋為ssl方式的smtp smtp = smtplib.SMTP() # smtp = smtplib.SMTP_SSL() try: #連接主機(jī)地址 smtp.connect('mail.yto.net.cn:25') #登錄郵箱,需要郵箱賬號,密碼 smtp.login('XXXXXXXX.qq.com','234123') #發(fā)送郵件,需要登錄的郵箱號,發(fā)送方的郵箱號,發(fā)送內(nèi)容 smtp.sendmail('XXXXXXXX.qq.com', '1212112@qq.com', msg.as_string()) #退出郵箱 smtp.quit() print 'The mail is sended successly.' except smtplib.SMTPException,e: print "Error: 無法發(fā)送郵件",e
發(fā)送結(jié)果:
注意點(diǎn):當(dāng)自己郵箱作為郵件發(fā)送方時(shí),注意郵件服務(wù)器的設(shè)置里把smtp服務(wù)打開
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python發(fā)送郵件的實(shí)例代碼(支持html、圖片、附件)
- python中使用smtplib和email模塊發(fā)送郵件實(shí)例
- Python實(shí)現(xiàn)給qq郵箱發(fā)送郵件的方法
- Python實(shí)現(xiàn)SMTP發(fā)送郵件詳細(xì)教程
- python同時(shí)給兩個(gè)收件人發(fā)送郵件的方法
- 二種python發(fā)送郵件實(shí)例講解(python發(fā)郵件附件可以使用email模塊實(shí)現(xiàn))
- python發(fā)送郵件示例(支持中文郵件標(biāo)題)
- python發(fā)送郵件接收郵件示例分享
- 基于python發(fā)送郵件的亂碼問題的解決辦法
- python監(jiān)控網(wǎng)站運(yùn)行異常并發(fā)送郵件的方法
相關(guān)文章
Django實(shí)現(xiàn)whoosh搜索引擎使用jieba分詞
這篇文章主要介紹了Django實(shí)現(xiàn)whoosh搜索引擎使用jieba分詞,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04使用numpy對數(shù)組求平均時(shí)如何忽略nan值
這篇文章主要介紹了使用numpy對數(shù)組求平均時(shí)如何忽略nan值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享
這篇文章主要介紹了OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享,有需要的朋友可以借鑒參考下,希望可以對各位讀者的OpenCV算法學(xué)習(xí)能夠有所幫助2021-09-09Python 實(shí)現(xiàn)輸入任意多個(gè)數(shù),并計(jì)算其平均值的例子
今天小編就為大家分享一篇Python 實(shí)現(xiàn)輸入任意多個(gè)數(shù),并計(jì)算其平均值的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Pandas之StyleFrame如何設(shè)置表格樣式
這篇文章主要介紹了Pandas之StyleFrame如何設(shè)置表格樣式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07