国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python發送email的三種方式

2020-02-15 23:17:15
字體:
來源:轉載
供稿:網友

Python發送email的三種方式,分別為使用登錄郵件服務器、使用smtp服務、調用sendmail命令來發送三種方法

Python發送email比較簡單,可以通過登錄郵件服務來發送,linux下也可以使用調用sendmail命令來發送,還可以使用本地或者是遠程的smtp服務來發送郵件,不管是單個,群發,還是抄送都比較容易實現。本米撲博客先介紹幾個最簡單的發送郵件方式記錄下,像html郵件,附件等也是支持的,需要時查文檔即可。

一、登錄郵件服務器

通過smtp登錄第三方smtp郵箱發送郵件,支持 25 和 465端口

vim python_email_1.py

#!/usr/bin/env python# -*- coding:utf-8 -*-## author: mimvp.com# 2015.10.05  import smtplib from email.mime.text import MIMEText   smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com'  content = 'hello mimvp.com' msg = MIMEText(content)   msg['Subject'] = 'email-subject' msg['From'] = sender msg['To'] = receiver   ## smtp port 25smtpServer = smtplib.SMTP(smtpHost, 25)     # SMTPsmtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 25'  ## smtp ssl port 465smtpServer = smtplib.SMTP_SSL(smtpHost, 465)  # SMTP_SSLsmtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 465'

執行命令:

$ python python_email_1.py send success by port 25send success by port 465

發送結果,會收到兩封郵件,截圖其中一份郵件如下圖:

二、使用smtp服務

測試失敗,略過或留言指正

#!/usr/bin/env python# -*- coding:utf-8 -*-## author: mimvp.com# 2015.10.05  import smtplib from email.mime.text import MIMEText import subprocess  smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com'  content = 'hello mimvp.com' msg = MIMEText(content)       if __name__ == "__main__":    p = subprocess.Popen(['/usr/sbin/sendmail', '-t'], stdout=subprocess.PIPE)   print(str(p.communicate()))  p_res = str(p.communicate()[0])  msg = MIMEText(p_res)   msg["From"] = sender   msg["To"] = receiver   msg["Subject"] = "hello mimvp.com"   s = smtplib.SMTP(smtpHost)   s.login(sender, password)  s.sendmail(sender, receiver, msg.as_string())   s.quit()   print 'send success'

三、調用sendmail命令

調用本機linux自身sendmail服務發送郵件,不需要啟動sendmail后臺進程,不需要發送者登錄,郵件發送者可以是任意名字,沒有限制。

特別注意:sendmail 命令發送郵件,默認用25端口號,由于阿里云、騰訊云等封禁了25端口號,因此本示例需在開通25端口機器上測試

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海林市| 凤台县| 新宁县| 佛学| 弥渡县| 永福县| 水富县| 庄河市| 杭锦后旗| 铁力市| 芮城县| 尚志市| 来安县| 衢州市| 绵阳市| 镇远县| 印江| 景泰县| 新晃| 修武县| 阜新市| 临朐县| 民和| 石台县| 象州县| 平顺县| 台州市| 连江县| 安泽县| 鸡东县| 涞水县| 湖北省| 交口县| 疏附县| 新闻| 定远县| 延川县| 建湖县| 大厂| 隆化县| 崇义县|