怎么在python3中使用smtplib發(fā)送郵件-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)怎么在python3中使用smtplib發(fā)送郵件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)專注于永寧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供永寧營(yíng)銷型網(wǎng)站建設(shè),永寧網(wǎng)站制作、永寧網(wǎng)頁設(shè)計(jì)、永寧網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造永寧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供永寧網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。python有哪些常用庫

python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

首先,我們需要導(dǎo)入Python3標(biāo)準(zhǔn)庫中的smtplib包和email包來實(shí)現(xiàn)郵件的構(gòu)造和發(fā)送。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

然后,我們需要配置郵件內(nèi)容:

message = MIMEText('郵件測(cè)試', 'plain', 'utf-8')
message['From'] = 'qixizhuang@126.com'
message['To'] = 'qixizhuang@126.com,751718003@qq.com'
subject = 'Python SMTP 郵件測(cè)試'
message['Subject'] = Header(subject, 'utf-8')

一個(gè)完整的郵件需要包括主題(subject)、正文、發(fā)件人和收件人:

message = MIMEText('郵件測(cè)試', 'plain', 'utf-8')用于設(shè)置郵件正文,email.mime.text.MIMEText的三個(gè)參數(shù)中,第一個(gè)是郵件正文,第二個(gè)是設(shè)置文本格式,第三個(gè)則用于設(shè)置文本編碼。

message['From'] = 'qixizhuang@126.com'用于設(shè)置發(fā)件人一欄。

message['To'] ='qixizhuang@126.com,751718003@qq.com'則用于設(shè)置收件人一欄。多個(gè)收件人之間直接用英文逗號(hào)隔開即可。

message['Subject'] = Header(subject, 'utf-8')則用于設(shè)置郵件的主題。

怎么在python3中使用smtplib發(fā)送郵件

此次郵件發(fā)送,我們以網(wǎng)易的126郵箱為例,因此我們需要配置一些服務(wù)器和賬號(hào)信息:

sender = 'qixizhuang@126.com'
receivers = ['qixizhuang@126.com', '751718003@qq.com']
mail_host = 'smtp.126.com'
mail_user = 'qixizhuang@126.com'
mail_pass = '********'

我們需要配置服務(wù)器、郵件賬號(hào)及密碼、以及發(fā)件人和收件人信息。

  • sender = 'qixizhuang@126.com'是用于配置發(fā)件人信息,注意此處的發(fā)件人與message[‘from']部分含義不同,message中的信息用于在郵箱中顯示,而此處則是使用sendmail方法時(shí)所需要的一個(gè)參數(shù)。即sender這一變量名并不重要,你甚至可以直接在sendmail中填入郵箱地址的字符串。

  • receivers = ['qixizhuang@126.com', '751718003@qq.com']則用于配置收件人信息,如果收件人只有一個(gè),那么我們可以直接用一個(gè)字符串來賦值;如果收件人有多個(gè)的話,那么sendmail需要接收一個(gè)列表。跟上一條類似,此處的含義與message[‘to']部分不同。

  • mail_host, mail_user, mail_pass則是用于設(shè)置郵件發(fā)送服務(wù)器以及郵箱的賬號(hào)密碼,跟上邊類似,變量名并不重要,不設(shè)置這幾個(gè)變量直接在sendmail中輸入字符串也是可以的。

最后,我們使用smtplib來發(fā)送郵件。

try:
 smtpObj = smtplib.SMTP() 
 smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號(hào)
 smtpObj.login(mail_user,mail_pass)
 smtpObj.sendmail(sender, receivers, message.as_string())
 print("郵件發(fā)送成功!")
except smtplib.SMTPException:
 print("郵件發(fā)送失??!")
  • smtpObj = smtplib.SMTP(); smtpObj.connect(mail_host, 25);也可以直接改成smtpObj = smtplib.SMTP(mail_host, 25) ,這是為了構(gòu)建一個(gè)SMTP對(duì)象。

  • smtpObj.login(mail_user,mail_pass)用于登錄郵箱。需要注意的是,這里的mail_pass不一定是你的郵箱密碼,很多郵箱服務(wù)包括網(wǎng)易郵箱提供了授權(quán)碼的功能,如果開啟了此項(xiàng)功能,則此處需要將郵箱密碼改為授權(quán)碼。

  • smtpObj.sendmail(sender, receivers, message.as_string())則是使用SMTP對(duì)象的sendmail方法來發(fā)送郵件。

到此為止,我們已經(jīng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的郵件發(fā)送案例。

然而,在很多場(chǎng)景下,我們需要為郵件添加附件,則此種情況下,我們需要先創(chuàng)建MIMEMultipart()實(shí)例,然后構(gòu)造一個(gè)或多個(gè)附件,最終使用smtplib來發(fā)送。完整示例代碼如下:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

# 配置郵箱賬戶及收發(fā)人信息
sender = 'qixizhuang@126.com'
receivers = ['qixizhuang@126.com', '751718003@qq.com']
mail_host = 'smtp.126.com'
mail_user = 'qixizhuang@126.com'
mail_pass = 'password or authorization code here'

# 構(gòu)建MIMEMultipart對(duì)象,并在其中添加郵件內(nèi)容信息
message = MIMEMultipart()
message.attach(MIMEText('郵件測(cè)試', 'plain', 'utf-8'))
message['From'] = 'qixizhuang@126.com'
message['To'] = 'qixizhuang@126.com,751718003@qq.com'
subject = 'Python SMTP 郵件測(cè)試'
message['Subject'] = Header(subject, 'utf-8')

# 構(gòu)建附件內(nèi)容
attr = MIMEText(open('./test.txt', 'r').read())
attr['Content-Type'] = 'application/octet-stream'
attr['Content-Disposition'] = 'attachment; filename = ' + 'test.txt'
message.attach(attr)

# 發(fā)送郵件
try:
 smtpObj = smtplib.SMTP() 
 smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號(hào)
 smtpObj.login(mail_user,mail_pass)
 smtpObj.sendmail(sender, receivers, message.as_string())
 print("郵件發(fā)送成功!")
except smtplib.SMTPException:
 print("郵件發(fā)送失??!")

看完上述內(nèi)容,你們對(duì)怎么在python3中使用smtplib發(fā)送郵件有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁題目:怎么在python3中使用smtplib發(fā)送郵件-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://muchs.cn/article6/dchiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化Google、域名注冊(cè)、營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站