摘要:郵箱傳輸協(xié)議簡單郵件傳輸協(xié)議由源地址到目的地址的傳輸規(guī)則郵箱服務(wù)器默認(rèn)端口生成第三方登錄郵箱的密鑰,這樣從第三方登錄郵箱,不能輸入密碼,只需要輸入第三方密鑰就行需要使用到的庫主要是負(fù)責(zé)發(fā)送郵件,連接郵箱服務(wù)器,登錄郵箱構(gòu)造郵件,郵件顯示的內(nèi)
QQ郵箱傳輸協(xié)議
SMTP:簡單郵件傳輸協(xié)議(由源地址到目的地址的傳輸規(guī)則)
smtp.qq.com :QQ郵箱服務(wù)器
默認(rèn)端口:25
生成第三方登錄QQ郵箱的密鑰,這樣從第三方登錄QQ郵箱,不能輸入密碼,只需要輸入第三方密鑰就行
需要使用到的庫smtplib :主要是負(fù)責(zé)發(fā)送郵件,連接郵箱服務(wù)器,登錄郵箱
email :構(gòu)造郵件,郵件顯示的內(nèi)容,收件人,發(fā)件人
import smtplib from email.mime.text import MIMEText # 發(fā)送文本 from email.mime.image import MIMEImage # 發(fā)送圖片 from email.mime.multipart import MIMEMultipart # 將多個對象結(jié)合起來 from email.utils import formataddr from email.header import Header發(fā)送郵件簡單代碼
sender_from = "[email protected]" # 發(fā)件人郵箱 sender_to="[email protected]" # 收件人郵箱 # 定義一個函數(shù),接收傳入的郵件主題,郵件內(nèi)容為參數(shù) def send_email(eamil_subject:str,email_content:str)->int: try: # 構(gòu)造郵件的內(nèi)容 plain:表示發(fā)送的是文本;HTML:表示發(fā)送的超文本 message = MIMEText(email_content, "plain", "utf-8") # 主題 message["Subject"] = Header(eamil_subject, "utf-8") message["From"] = formataddr(["icessun", sender_from]) message["To"] = formataddr(["604421385", sender_to]) # 構(gòu)造發(fā)送郵件的對象smtp,實例化SMTP() smtp = smtplib.SMTP() # 連接郵箱服務(wù)器 host 和 port smtp.connect("smtp.qq.com", 25) # 可以簡寫 smtp=smtplib.SMTP("smtp.qq.com",25) # 登陸郵箱 第二個參數(shù)是qq郵箱授權(quán)碼 smtp.login(sender_from, "xxxxxxxx") # 發(fā)送方,接收方(可以有多個["接收地址1","接收地址2",....]),發(fā)送的消息(字符串類型,使用郵件格式) # message.as_string() 將MIMEText對象變?yōu)閟tr smtp.sendmail(sender_from, sender_to, message.as_string()) # 退出郵箱,結(jié)束SMTP會話 smtp.quit() return 0 except: return -1email中的 MIMEText
plain:表示發(fā)送的文本,基本的
# 構(gòu)造郵件的內(nèi)容 plain:表示發(fā)送的是文本;HTML:表示發(fā)送的超文本 email_content = "這是發(fā)送的文本消息" message = MIMEText(email_content, "plain", "utf-8")
html:表示發(fā)送的超文本
base64:表示添加附件
# 打開文件所在的位置 send_file=open(r"F:password.txt").read() # 二進(jìn)制文件 message = MIMEText(send_file, "base64", "utf-8") message["Content-Type"] = "application/octet-stream" # 內(nèi)容展示的方式:attachment ,中文名字顯示不成功 aaa.txt 英文才能正常顯示 # message["Content-Disposition"] = "attachment;filename="aaa.txt"" message.add_header("Content-Disposition","attachment",filename="aaaa.txt")email中的 Header 和 formataddr
發(fā)送的郵件發(fā)送方和接收方全部使用 Header;不會顯示具體的發(fā)件人和收件人的郵箱地址
message["From"] = Header("python","utf-8") message["To"] = Header("參數(shù)", "utf-8")
發(fā)送的郵件發(fā)送方和接收方全部使用 formataddr;顯示具體的發(fā)件人和收件人的郵箱地址,和為其設(shè)置的別名
# 默認(rèn)字符編碼為 utf-8,第一個參數(shù)傳入列表[發(fā)件人的名字,郵箱地址] message["From"] = formataddr(["hhhh", sender_from]) message["To"] = formataddr(["604421385", sender_to])email中的MIMEMultipart
mixed:郵件包含附件,向上兼容
related:郵件正文包含圖片,聲音等內(nèi)嵌資源
alternative:郵件只是純文本,超文本
message = MIMEMultipart("mixed") # 然后把 郵件的 Subject From To 添加到 message中 message["Subject"] = Header(email_subject,"utf-8") message["From"] = formataddr(["test",sender_from]) message["To"] = formataddr(["接收者",sender_to])
將其他文本添加到 Multipart 中
message.attach(text_plain) # MIMEText 對象 message.attach(text_html) # 超文本 message.attach(text_att) # 附件 message.attach(image) # MIMEImage 對象
發(fā)送郵件的多功能代碼:
發(fā)送文本
發(fā)送圖片
發(fā)送超文本
發(fā)送附件
代碼地址
回復(fù):QQ郵箱 獲取
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42944.html
摘要:使用腳本發(fā)送郵件并不復(fù)雜。以下為思路導(dǎo)圖模塊與發(fā)送郵件相關(guān)的模塊是關(guān)于簡單郵件傳輸協(xié)議的操作模塊,在發(fā)送郵件的過程中起到服務(wù)器之間互相通信的作用。 0. 前言 發(fā)送電子郵件是個很常見的開發(fā)需求。比如你寫了個監(jiān)控天氣的腳本,發(fā)現(xiàn)第二天要下雨,或者網(wǎng)站上關(guān)注的某個商品降價了,就可以發(fā)個郵件到郵箱來提醒自己。 使用 Python 腳本發(fā)送郵件并不復(fù)雜。不過由于各家郵件的發(fā)送機(jī)制和安全策略不同...
摘要:自動發(fā)送郵件我們把報表做出來以后一般都是需要發(fā)給別人查看,對于一些每天需要發(fā)的報表或者是需要一次發(fā)送多份的報表,這個時候可以考慮借助來自動發(fā)送郵件。一份郵件的組成下圖是中發(fā)送一份郵件的界面,主要包含發(fā)件人收件人抄送人主題正文附件這幾部分。 ...
摘要:是發(fā)送郵件的協(xié)議,內(nèi)置對的支持模塊和模塊可以發(fā)送純文本郵件郵件以及帶附件的郵件簡單郵件傳輸協(xié)議,是從源地址到目的地址傳送郵件的規(guī)則,由該協(xié)議控制信件的中轉(zhuǎn)方式的提供了一種很方便的途徑傳遞電子郵件,對進(jìn)行了簡單的封裝發(fā)送純文本郵件導(dǎo)入模塊 SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對SMTP的支持(smtplib模塊和email模塊),可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件 S...
摘要:本米撲博客先介紹幾個最簡單的發(fā)送郵件方式記錄下,像郵件,附件等也是支持的,需要時查文檔即可。特別注意命令發(fā)送郵件,默認(rèn)用端口號,由于阿里云騰訊云等封禁了端口號,因此本示例需在開通端口機(jī)器上測試執(zhí)行命令收件結(jié)果 Python發(fā)送email的三種方式,分別為使用登錄郵件服務(wù)器、使用smtp服務(wù)、調(diào)用sendmail命令來發(fā)送三種方法 本文原文自米撲博客:Python 發(fā)送 email 的三...
摘要:程序人員對于郵件自動化的日常需求還是很高的。更是自帶一套模塊實現(xiàn)郵件發(fā)送。正是為了實現(xiàn)這個而生的,一句話就可以完成所有的登錄發(fā)送文字附件等功能。參考一句話發(fā)送郵件正常一點的發(fā)送郵件 程序人員對于郵件自動化的日常需求還是很高的。但是入過了Linux的命令行郵件客戶端如Sendmail, Mutt, Alpine等坑之后,發(fā)現(xiàn)現(xiàn)代其實很少人真的在用它們實現(xiàn)郵件自動化,根據(jù)搜索引擎里相關(guān)文章...
閱讀 1999·2019-08-30 15:54
閱讀 3547·2019-08-30 15:52
閱讀 1834·2019-08-29 17:20
閱讀 2530·2019-08-29 17:08
閱讀 2358·2019-08-26 13:24
閱讀 807·2019-08-26 11:59
閱讀 2792·2019-08-23 14:50
閱讀 630·2019-08-23 14:20