成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python 發(fā)送 email 的三種方式

kun_jian / 1477人閱讀

摘要:本米撲博客先介紹幾個(gè)最簡(jiǎn)單的發(fā)送郵件方式記錄下,像郵件,附件等也是支持的,需要時(shí)查文檔即可。特別注意命令發(fā)送郵件,默認(rèn)用端口號(hào),由于阿里云騰訊云等封禁了端口號(hào),因此本示例需在開通端口機(jī)器上測(cè)試執(zhí)行命令收件結(jié)果

Python發(fā)送email的三種方式,分別為使用登錄郵件服務(wù)器、使用smtp服務(wù)、調(diào)用sendmail命令來(lái)發(fā)送三種方法

本文原文自米撲博客:Python 發(fā)送 email 的三種方式

Python發(fā)送email比較簡(jiǎn)單,可以通過(guò)登錄郵件服務(wù)來(lái)發(fā)送,linux下也可以使用調(diào)用sendmail命令來(lái)發(fā)送,還可以使用本地或者是遠(yuǎn)程的smtp服務(wù)來(lái)發(fā)送郵件,不管是單個(gè),群發(fā),還是抄送都比較容易實(shí)現(xiàn)。本米撲博客先介紹幾個(gè)最簡(jiǎn)單的發(fā)送郵件方式記錄下,像html郵件,附件等也是支持的,需要時(shí)查文檔即可。

一、登錄郵件服務(wù)器

通過(guò)smtp登錄第三方smtp郵箱發(fā)送郵件,支持 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 25
smtpServer = smtplib.SMTP(smtpHost, 25)         # SMTP
smtpServer.login(sender, password)  
smtpServer.sendmail(sender, receiver, msg.as_string())  
smtpServer.quit()  
print "send success by port 25" 
 
## smtp ssl port 465
smtpServer = smtplib.SMTP_SSL(smtpHost, 465)    # SMTP_SSL
smtpServer.login(sender, password)  
smtpServer.sendmail(sender, receiver, msg.as_string())  
smtpServer.quit()  
print "send success by port 465"

執(zhí)行命令:

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

發(fā)送結(jié)果,會(huì)收到兩封郵件,截圖其中一份郵件如下圖:


二、使用smtp服務(wù)

測(cè)試失敗,略過(guò)或留言指正

#!/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"

三、調(diào)用sendmail命令

調(diào)用本機(jī)linux自身sendmail服務(wù)發(fā)送郵件,不需要啟動(dòng)sendmail后臺(tái)進(jìn)程,不需要發(fā)送者登錄,郵件發(fā)送者可以是任意名字,沒有限制。

特別注意:sendmail 命令發(fā)送郵件,默認(rèn)用25端口號(hào),由于阿里云、騰訊云等封禁了25端口號(hào),因此本示例需在開通25端口機(jī)器上測(cè)試

vim python_email_3.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
# author: mimvp.com
# 2015.10.05
  
  
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import commands
  
import sys 
reload(sys)
sys.setdefaultencoding("utf-8")
  
def send_mail(sender, recevier, subject, html_content):
        msg = MIMEText(html_content, "html", "utf-8")
        msg["From"] = sender
        msg["To"] = recevier
        msg["Subject"] = subject
        p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
        p.communicate(msg.as_string())
  
  
sender = "robot@mimvp.com"
recevier = "yanggang@mimvp.com"
subject = "sendmail-subject"
html_content = "hello mimvp.com"
send_mail(sender, recevier, subject, html_content)

執(zhí)行命令:

python python_email_3.py

收件結(jié)果:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/44825.html

相關(guān)文章

  • rabbitmq常用三種exchange類型和python庫(kù)pika接入rabbitmq

    摘要:可以簡(jiǎn)單方便的通過(guò)配置,并可以向和中發(fā)消息來(lái)驗(yàn)證自己的理解。然后通過(guò)發(fā)送消息,可以隨便填寫,因?yàn)槭穷愋偷模黄鹱饔?。這種情況下,隊(duì)列之間是互斥關(guān)系,一個(gè)消息最多只能進(jìn)入一個(gè)隊(duì)列。 現(xiàn)在很多開源軟件都提供了對(duì)應(yīng)的web管理界面,rabbitmq也不例外,rabbitmq提供了一個(gè)web插件。當(dāng)rabbit-server啟動(dòng)之后,即在瀏覽器中通過(guò)http://localhost:15672...

    YancyYe 評(píng)論0 收藏0
  • zeromq三種簡(jiǎn)單模式(python實(shí)現(xiàn))

    摘要:的明確目標(biāo)是成為標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議棧的一部分,之后進(jìn)入內(nèi)核。實(shí)現(xiàn)端測(cè)試消息已發(fā)送端正在轉(zhuǎn)發(fā)端輸出結(jié)果已發(fā)送已發(fā)送已發(fā)送正在轉(zhuǎn)發(fā)正在轉(zhuǎn)發(fā)正在轉(zhuǎn)發(fā)測(cè)試消息測(cè)試消息測(cè)試消息 簡(jiǎn)介 ZMQ (以下 ZeroMQ 簡(jiǎn)稱 ZMQ)是一個(gè)簡(jiǎn)單好用的傳輸層,像框架一樣的一個(gè) socket library,他使得 Socket 編程更加簡(jiǎn)單、簡(jiǎn)潔和性能更高。是一個(gè)消息處理隊(duì)列庫(kù),可在多個(gè)線程、內(nèi)核和主機(jī)盒之間...

    lufficc 評(píng)論0 收藏0
  • HTTP協(xié)議中你必須知道三種數(shù)據(jù)格式

    摘要:分塊傳輸編碼分塊傳輸編碼是超文本傳輸協(xié)議中的一種數(shù)據(jù)傳輸機(jī)制,允許由網(wǎng)頁(yè)服務(wù)器發(fā)送給客戶端應(yīng)用通常是網(wǎng)頁(yè)瀏覽器的數(shù)據(jù)可以分成多個(gè)部分。分塊傳輸編碼只在協(xié)議版本中提供。 實(shí)習(xí)中的一個(gè)主要工作就是分析 HTTP 中的協(xié)議,自己也用 Python 寫過(guò)正則表達(dá)式對(duì) HTTP 請(qǐng)求和響應(yīng)的內(nèi)容進(jìn)行匹配,然后把關(guān)鍵字段抽離出來(lái)放到一個(gè)字典中以備使用(可以稍微改造一下就是一個(gè)爬蟲工具)。 HTTP...

    Blackjun 評(píng)論0 收藏0
  • PyCharm的安裝、設(shè)置及使用

    摘要:的簡(jiǎn)介隨著近年來(lái)的火爆程度逐年攀升越來(lái)越多的開發(fā)者開始因其豐富的庫(kù)支持簡(jiǎn)潔高效的語(yǔ)法以及強(qiáng)大的運(yùn)算速度而對(duì)其紛紛側(cè)目也正因此及基于它而生的各類框架如等普遍應(yīng)用于當(dāng)下各類場(chǎng)景下作為時(shí)代的弄潮兒大有獨(dú)領(lǐng)風(fēng)騷之勢(shì)也正是因此毫無(wú)疑問是當(dāng)前最好的編程 PyCharm的簡(jiǎn)介 隨著近年來(lái)Python的火爆程度逐年攀升,越來(lái)越多的開發(fā)者開始因其豐富的庫(kù)支持,簡(jiǎn)潔高效的語(yǔ)法以及強(qiáng)大的運(yùn)算速度而對(duì)其紛紛側(cè)...

    jzzlee 評(píng)論0 收藏0
  • python之單例模式實(shí)現(xiàn)三種方式

    摘要:輸出結(jié)果輸出結(jié)果此外還有兩種實(shí)現(xiàn)單例的方式,我呢也給大家列出來(lái),方便大家學(xué)習(xí)和參考方式一方式二單例模式實(shí)現(xiàn)方式二。。。 什么是單例模式?通俗點(diǎn)講:?jiǎn)卫J骄褪窃诔绦驁?zhí)行的過(guò)程中,類只有一個(gè)實(shí)例,這不是說(shuō)單例模式只能去創(chuàng)建一個(gè)實(shí)例,而是你創(chuàng)建的所有實(shí)例(也就是對(duì)象)都指的是同一個(gè)實(shí)例。如何做到這一點(diǎn)呢?我們的__new__特殊方法就派上用場(chǎng)了,可能大家對(duì)這個(gè)方法熟悉又陌生,那么接下來(lái)通過(guò)...

    dack 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<