日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【TOOLS】python3利用SMTP进行邮件Email自主发送

發布時間:2024/1/1 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【TOOLS】python3利用SMTP进行邮件Email自主发送 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019.1.30更新
對于在阿里云服務器上運行本博客有幾處需要改動的地方。
首先因為阿里云服務器里面有很多端口都被限制,所以以下的代碼在本地可以成功,但在云服務器上并出現問題
通過我的不斷實驗,最終成功的為port=587
并且我發送的郵件改為qq郵箱,接受為網易163郵箱,服務器host也改為"smtp.qq.com"
qq郵箱授權碼獲取方式在以下ps中講解

一、前言

利用python進行郵件的發送,這個功能自我感覺主要應用于檢測或者報告之類,我兩次運用這個功能。

  • 第一次用在主要發送實時的數據給一個郵箱
  • 第二次用是檢測掛在服務器端一直再跑的python程序是否出現異常情況。

我這里采用163郵箱(sender)給qq郵箱(receiver)發送文本類郵件

二、提取163郵箱的客戶端授權密碼

首先登陸163郵箱的網頁版本。

最后點擊開啟,自己設置密碼即可。
之后這個密碼不要忘記了,代碼中要用到。

三、代碼

show you my code

from smtplib import SMTP from email.mime.text import MIMEText from email.header import Header"""function: 利用模型進行推理Parameters:SMTP_host: string類型,SMTP 服務器主機ip地址。 這里為 "smtp.163.com" from_addr: string類型,發送方,也就是作用為發送郵件的郵箱地址 password: string類型,郵箱的授權碼,而不是郵箱的登陸密碼,可從郵箱獲得,就是上面二所講獲取的授權碼。to_addrs: list里面嵌套string類型,接收郵件的郵箱地址,可以有多個接收郵件的郵箱地址。subject: string類型,主題content: string類型,內容Returns:CSDN:http://blog.csdn.net/qq_33431368""" def send_email(SMTP_host, from_addr, password, to_addrs, subject, content):email_client = SMTP(SMTP_host) #初始化 SMTP類,SMTP服務使用的端口號默認為25,這里默認情況,也可自己設置port參數email_client.login(from_addr, password) #登陸服務器# 以下在下面的結果圖片中再具體標出說明msg = MIMEText(content, 'plain', 'utf-8') #可以理解為發送這個郵箱內容的類,這句話主要是設置這個郵件內容msg['Subject'] = Header(subject, 'utf-8') # 設置郵箱主題,也就是標題msg['From'] = from_addr # 這個是最后顯示的郵件的frommsg['To'] = "".join(to_addrs) # 這個是最后顯示的郵件的toemail_client.sendmail(from_addr, to_addrs, msg.as_string()) #發送信息,將msg轉換為stringemail_client.quit()# 退出服務器if __name__ == "__main__":hoster = "smtp.163.com"sender_email = "XXXXXXXXX@163.com"Authorization_code= "XXXXXXXXXXX"receiver_email = ["XXXXXXXX@qq.com"]# 這里如果需要發送多個郵箱,形式為["xxxqq.com","xxx163.com","xxx126.com"]subject = "我發送郵件了"text = "今天天氣真好"send_email(hoster, sender_email, Authorization_code, receiver_email, subject, text)

四、結果

可能出現這個問題

smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp12,

解決方案,把測試和test類似的語句換掉,比如我的demo code中的比較正常的語言即可。

接收郵箱顯示。


有subject和content對應。

ps(2019.1.30):

獲取qq郵箱授權碼

點擊開啟,給qq官方發送一個短信即可獲得,別忘了復制保存。

修改后的代碼有改動,請自己對照使用,親測好用

from smtplib import SMTP from email.mime.text import MIMEText from email.header import Headerdef send_email(SMTP_host, from_addr, password, to_addrs, subject, content):"""port = 587在登陸郵箱前加上email_client.starttls()這句話"""email_client = SMTP(SMTP_host, 587) email_client.starttls()email_client.login(from_addr, password)msg = MIMEText(content, 'plain', 'utf-8')msg['Subject'] = Header(subject, 'utf-8')#subjectmsg['From'] = from_addrmsg['to'] = ''.join(to_addrs)email_client.sendmail(from_addr, to_addrs, msg.as_string())email_client.quit()if __name__ == "__main__":"""sender和receiver對調 """receiver = ["xxx@163.com"]send_email("smtp.qq.com","xxx@qq.com","shouquanma",receiver ,"程序出問題了","ps")

結果

總結

以上是生活随笔為你收集整理的【TOOLS】python3利用SMTP进行邮件Email自主发送的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。