Python SMTP發(fā)送電子郵件的示例
簡(jiǎn)單郵件傳輸協(xié)議(SMTP)是一種協(xié)議,用于處理在電子郵件服務(wù)器之間發(fā)送電子郵件和路由電子郵件。Python提供了smtplib模塊,該模塊定義了一個(gè)SMTP客戶(hù)端會(huì)話(huà)對(duì)象,該對(duì)象可用于將郵件發(fā)送到具有SMTP或ESMTP偵聽(tīng)器守護(hù)程序的任何Internet計(jì)算機(jī)。
SMTP對(duì)象具有一個(gè)稱(chēng)為sendmail的實(shí)例方法,該方法通常用于完成郵件的發(fā)送工作。它需要三個(gè)參數(shù)-
- sender- 具有發(fā)件人地址的字符串。
- receivers- 字符串列表,每個(gè)接收者一個(gè)。
- message- 以各種RFC中指定的格式格式化為字符串的消息。
Python SMTP示例
這是使用Python腳本發(fā)送一封電子郵件的簡(jiǎn)單方法。示例代碼:
#!/usr/bin/python3
import smtplib
sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: SMTP e-mail test
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
在這里,已經(jīng)在郵件中放置了一個(gè)基本電子郵件,使用三重引號(hào),請(qǐng)注意正確設(shè)置標(biāo)題的格式。電子郵件需要一個(gè)“發(fā)件人”,“收件人”和“主題”標(biāo)頭,并以空白行與電子郵件正文分開(kāi)。
要發(fā)送郵件,需要使用smtpObj連接到本地計(jì)算機(jī)上的SMTP服務(wù)器。然后,調(diào)用sendmail方法與消息,發(fā)件人地址和目標(biāo)地址一起用作參數(shù)(即使發(fā)件人和收件人地址位于電子郵件本身之內(nèi),但它們并不總是用于路由郵件)。
如果您不在本地計(jì)算機(jī)上運(yùn)行SMTP服務(wù)器,則可以使用smtplib客戶(hù)端與遠(yuǎn)程SMTP服務(wù)器通信。除非您使用Webmail服務(wù)(例如gmail或Yahoo! Mail),否則您的電子郵件提供商必須已向您提供了可以提供它們的外發(fā)郵件服務(wù)器詳細(xì)信息,如下所示-
mail = smtplib.SMTP('smtp.gmail.com', 587)
使用Python發(fā)送HTML電子郵件當(dāng)使用Python發(fā)送文本消息時(shí),所有內(nèi)容均被視為簡(jiǎn)單文本。即使您在文本消息中包含HTML標(biāo)簽,它也將顯示為簡(jiǎn)單文本,并且HTML標(biāo)簽不會(huì)根據(jù)HTML語(yǔ)法進(jìn)行格式化。但是,Python提供了將HTML消息作為實(shí)際HTML消息發(fā)送的選項(xiàng)。
發(fā)送電子郵件時(shí),可以指定Mime版本,內(nèi)容類(lèi)型和字符集來(lái)發(fā)送HTML電子郵件。
示例代碼
以下是將HTML內(nèi)容作為電子郵件發(fā)送的示例 -
#!/usr/bin/python3
import smtplib
message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
以上就是Python SMTP發(fā)送電子郵件的示例的詳細(xì)內(nèi)容,更多關(guān)于Python SMTP發(fā)送電子郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python中將函數(shù)賦值給變量時(shí)需要注意的一些問(wèn)題
變量賦值是我們?cè)谌粘i_(kāi)發(fā)中經(jīng)常會(huì)遇到的一個(gè)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于python中將函數(shù)賦值給變量時(shí)需要注意的一些問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-08-08
python刪除列表元素del,pop(),remove()及clear()
這篇文章主要介紹了python刪除列表元素del,pop(),remove()及clear(),列表元素能增加就可以刪除,這里要給大家介紹的是刪除列表元素,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03
python自動(dòng)化實(shí)現(xiàn)登錄獲取圖片驗(yàn)證碼功能
這篇文章主要介紹了python自動(dòng)化實(shí)現(xiàn)登錄獲取圖片驗(yàn)證碼功能,本文通過(guò)實(shí)例截圖的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Django開(kāi)發(fā)的簡(jiǎn)易留言板案例詳解
這篇文章主要介紹了Django開(kāi)發(fā)的簡(jiǎn)易留言板,結(jié)合實(shí)例形式詳細(xì)分析了基于Python框架Django開(kāi)發(fā)留言板的具體文件結(jié)構(gòu)、流程步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
import?paddle報(bào)錯(cuò)的成功解決方法
最近安裝paddle的時(shí)候遇到了些問(wèn)題,這里給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于import?paddle報(bào)錯(cuò)的成功解決方法,需要的朋友可以參考下2023-06-06
使用Python字典實(shí)現(xiàn)詞頻統(tǒng)計(jì)的方法
在Python中,利用字典進(jìn)行詞頻統(tǒng)計(jì)是一種常見(jiàn)且強(qiáng)大的方式,通過(guò)對(duì)文本進(jìn)行預(yù)處理并使用字典數(shù)據(jù)結(jié)構(gòu),可以輕松地統(tǒng)計(jì)文本中每個(gè)單詞出現(xiàn)的頻率,下面將詳細(xì)解釋這個(gè)過(guò)程,并提供多種例子,以幫助你更好地理解并應(yīng)用這一技術(shù),需要的朋友可以參考下2023-12-12
Django實(shí)現(xiàn)發(fā)送郵件找回密碼功能
在各大網(wǎng)站上,一定都遇到過(guò)找回密碼的問(wèn)題,通常采用的方式是通過(guò)發(fā)送帶有驗(yàn)證碼的郵件進(jìn)行身份驗(yàn)證,本文將介紹通過(guò)Django實(shí)現(xiàn)郵件找回密碼功能,需要的朋友可以參考下2019-08-08
淺談python多線(xiàn)程和隊(duì)列管理shell程序
這篇文章主要給大家簡(jiǎn)單介紹了python多線(xiàn)程和隊(duì)列管理shell程序的方法和簡(jiǎn)單示例,有需要的小伙伴可以參考下。2015-08-08
Python Pandas describe()函數(shù)的使用詳解
pandas庫(kù)中的describe()函數(shù)為我們提供了這樣的功能,它可以快速生成數(shù)據(jù)集的描述性統(tǒng)計(jì)信息,這篇文章主要介紹了Python Pandas describe()函數(shù)的使用介紹,需要的朋友可以參考下2024-05-05

