摘要:程序人員對于郵件自動化的日常需求還是很高的。更是自帶一套模塊實現郵件發送。正是為了實現這個而生的,一句話就可以完成所有的登錄發送文字附件等功能。參考一句話發送郵件正常一點的發送郵件
程序人員對于郵件自動化的日常需求還是很高的。但是入過了Linux的命令行郵件客戶端如Sendmail, Mutt, Alpine等坑之后,發現現代其實很少人真的在用它們實現郵件自動化,根據搜索引擎里相關文章的數量就可知一二。取而代之的是,現代都在用Python或PHP等編程語言直接實現。Python更是自帶一套模塊實現郵件發送。
先上示例代碼,之后再詳解。
注:全部代碼在Python3環境下測試通過,正常使用,正常顯示,無需任何外置模塊。
參考:菜鳥教程 - Python SMTP發送郵件
參考:簡單三步,用 Python 發郵件
import smtplib from email.mime.text import MIMEText # Settings of sender"s server host = "smtp.aliyun.com" sender = "Jason@aliyun.com" user = "Jason@aliyun.com" password = input("Please type your password: ") to = ["Jason@outlook.com"] # Content of email subject = "Python send html email test" with open("./test.html", "r") as f: content = f.read() # Settings of the email string email = MIMEText(content,"html","utf-8") email["Subject"] = subject email["From"] = sender email["To"] = to[0] msg = email.as_string() # Login the sender"s server print("Logging with server...") smtpObj = smtplib.SMTP() smtpObj.connect(host, 25) smtpObj.login(user, password) print("Login successful.") # Send email smtpObj.sendmail(sender, to, msg) smtpObj.quit() print("Email has been sent")發送帶附件的郵件
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage # Settings of sender"s server host = "smtp.aliyun.com" sender = "Jason@aliyun.com" user = "Jason@aliyun.com" password = input("Please type your password: ") to = ["Jason@outlook.com"] # Make content of email subject = "Python send email with attachments" with open("./test.html", "r") as f: content = MIMEText(f.read(),"html","utf-8") content["Content-Type"] = "text/html" print("Loaded content.") # Make txt attachment with open("./txt.md", "r") as f: txt = MIMEText(f.read(),"plain","utf-8") txt["Content-Type"] = "application/octet-stream" txt["Content-Disposition"] = "attachment;filename="txt.md"" print("Loaded txt attachment file.") # Make image attachment with open("./pic.png", "rb") as f: img = MIMEImage(f.read()) img["Content-Type"] = "application/octet-stream" img["Content-Disposition"] = "attachment;filename="pic.png"" print("Loaded image attachment file.") # Attach content & attachments to email email = MIMEMultipart() email.attach(content) email.attach(txt) email.attach(img) # Settings of the email string email["Subject"] = subject email["From"] = sender email["To"] = to[0] msg = email.as_string() # Login the sender"s server print("Logging with server...") smtpObj = smtplib.SMTP() smtpObj.connect(host, 25) smtpObj.login(user, password) print("Login successful.") # Send email smtpObj.sendmail(sender, to, msg) smtpObj.quit() print("Email has been sent")發送郵件大殺器:Yagmail
之所以放在最后,是相襯托出傳統的發送郵件是多繁瑣多麻煩,實際上我們需要的只是超級簡單的東西。Yagmail正是為了實現這個而生的,一句話就可以完成所有的登錄、發送文字、HTML、附件等功能。
參考Github:yagmail -- Yet Another GMAIL/SMTP client
一句話發送郵件:
yagmail.SMTP("username").send("to@a.com", "Subject", "This is the body")
正常一點的發送郵件:
import yagmail yag = yagmail.SMTP("user", "password", host="server.com", port="123") contents = [ "This is the body, and here is just text http://somedomain/image.png", "You can find a file attached.", "./dataset/pic.jpg" ] yag.send("solomonxie@outlook.com", "yagmail tst", contents)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43080.html
摘要:使用腳本發送郵件并不復雜。以下為思路導圖模塊與發送郵件相關的模塊是關于簡單郵件傳輸協議的操作模塊,在發送郵件的過程中起到服務器之間互相通信的作用。 0. 前言 發送電子郵件是個很常見的開發需求。比如你寫了個監控天氣的腳本,發現第二天要下雨,或者網站上關注的某個商品降價了,就可以發個郵件到郵箱來提醒自己。 使用 Python 腳本發送郵件并不復雜。不過由于各家郵件的發送機制和安全策略不同...
摘要:自動發送郵件我們把報表做出來以后一般都是需要發給別人查看,對于一些每天需要發的報表或者是需要一次發送多份的報表,這個時候可以考慮借助來自動發送郵件。一份郵件的組成下圖是中發送一份郵件的界面,主要包含發件人收件人抄送人主題正文附件這幾部分。 ...
摘要:是發送郵件的協議,內置對的支持模塊和模塊可以發送純文本郵件郵件以及帶附件的郵件簡單郵件傳輸協議,是從源地址到目的地址傳送郵件的規則,由該協議控制信件的中轉方式的提供了一種很方便的途徑傳遞電子郵件,對進行了簡單的封裝發送純文本郵件導入模塊 SMTP是發送郵件的協議,Python內置對SMTP的支持(smtplib模塊和email模塊),可以發送純文本郵件、HTML郵件以及帶附件的郵件 S...
摘要:本米撲博客先介紹幾個最簡單的發送郵件方式記錄下,像郵件,附件等也是支持的,需要時查文檔即可。特別注意命令發送郵件,默認用端口號,由于阿里云騰訊云等封禁了端口號,因此本示例需在開通端口機器上測試執行命令收件結果 Python發送email的三種方式,分別為使用登錄郵件服務器、使用smtp服務、調用sendmail命令來發送三種方法 本文原文自米撲博客:Python 發送 email 的三...
摘要:郵箱傳輸協議簡單郵件傳輸協議由源地址到目的地址的傳輸規則郵箱服務器默認端口生成第三方登錄郵箱的密鑰,這樣從第三方登錄郵箱,不能輸入密碼,只需要輸入第三方密鑰就行需要使用到的庫主要是負責發送郵件,連接郵箱服務器,登錄郵箱構造郵件,郵件顯示的內 QQ郵箱傳輸協議 SMTP:簡單郵件傳輸協議(由源地址到目的地址的傳輸規則) smtp.qq.com :QQ郵箱服務器 默認端口:25 生成第三...
閱讀 1524·2021-11-25 09:43
閱讀 4067·2021-11-15 11:37
閱讀 3199·2021-08-17 10:13
閱讀 3507·2019-08-30 14:16
閱讀 3538·2019-08-26 18:37
閱讀 2495·2019-08-26 11:56
閱讀 1135·2019-08-26 10:42
閱讀 613·2019-08-26 10:39