python email電子郵件怎么發(fā)送普通文本、附件、html格式郵件,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):內(nèi)江服務(wù)器托管,成都服務(wù)器租用,內(nèi)江服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線(xiàn)機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
=今天學(xué)習(xí)使用smtplib發(fā)送電子郵件,并記錄學(xué)習(xí)過(guò)程歡迎大家一起交流分享。
新建一個(gè)python文件命名為py3_email.py,在這個(gè)文件中進(jìn)行操作代碼編寫(xiě):
import os
import smtplib
from email.message import EmailMessage
import imghdr
#這里使用qq郵箱進(jìn)行測(cè)試
#發(fā)送普通文本
#從環(huán)境變量中獲取
#電子郵箱地址和密碼
EMAIL_ADDRESS = os.environ.get('EMAIL_ADDRESS')
EMAIL_PASSWORD = os.environ.get('EMAIL_PASSWORD')
#獲取收件人的郵箱地址
EMAIL_RECEVIER = os.environ.get('EMAIL_RECEVIER')
with smtplib.SMTP('smtp.qq.com',25) as smtp:
#使用ehlo識(shí)別smtp服務(wù)器
smtp.ehlo()
#啟用TLS
smtp.starttls()
#再次識(shí)別smtp
smtp.ehlo()
#登錄smtp
smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)
#smtp.set_debuglevel(1)調(diào)試使用
subject = 'hello where are you ?'
body ='Hi In China!!!!!!'
msg = f'{subject}\n\n{body}'
smtp.sendmail(EMAIL_ADDRESS,EMAIL_RECEVIER,msg)
##注意這里測(cè)試的時(shí)候,發(fā)件人使用的是qq郵箱
##使用163郵箱作為發(fā)件人會(huì)出很多問(wèn)題。
##這里的密碼是郵箱的授權(quán)碼 需要自己登錄到郵箱進(jìn)行設(shè)置
####使用EmailMessage對(duì)象設(shè)置郵件主題內(nèi)容發(fā)送
e_msg = EmailMessage()
e_msg['Subject'] = 'Life is short !!!'
e_msg['From'] = EMAIL_ADDRESS
e_msg['To'] = EMAIL_RECEVIER
e_msg.set_content('How about python?')
with smtplib.SMTP('smtp.qq.com',25) as smtp:
smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)
smtp.send_message(e_msg)
##發(fā)送帶附件的郵件
e_msg = EmailMessage()
e_msg['Subject'] = 'Image from my PC!!!'
e_msg['From'] = EMAIL_ADDRESS
e_msg['To'] = EMAIL_RECEVIER
e_msg.set_content('Image moto attached。。。')
#打開(kāi)圖片,添加圖片信息到e_msg中
with open('0.jpg','rb') as f:
file_data = f.read()
file_type = imghdr.what(f.name)
file_name = f.name
e_msg.add_attachment(file_data,maintype='image',subtype=file_type,filename=file_name)
#也可以添加多張圖片,使用for實(shí)現(xiàn)即可
#如果是pdf文件做如下調(diào)整
#e_msg.add_attachment(file_data,maintype='application',subtype='octet-stream',filename=file_name)
#其他格式文件可參考api
with smtplib.SMTP('smtp.qq.com',25) as smtp:
smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)
smtp.send_message(e_msg)
####發(fā)送一個(gè)HTML格式的郵件
e_msg = EmailMessage()
e_msg['Subject'] = 'html email send!!!'
e_msg['From'] = EMAIL_ADDRESS
e_msg['To'] = EMAIL_RECEVIER
e_msg.set_content('This is a plain text email')
e_msg.add_alternative("""\
This is an HTML Email!
""", subtype='html')
with smtplib.SMTP('smtp.qq.com',25) as smtp:
smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)
smtp.send_message(e_msg)
關(guān)于python email電子郵件怎么發(fā)送普通文本、附件、html格式郵件問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。