python email電子郵件怎么發送普通文本、附件、html格式郵件,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
=今天學習使用smtplib發送電子郵件,并記錄學習過程歡迎大家一起交流分享。
新建一個python文件命名為py3_email.py,在這個文件中進行操作代碼編寫:
import osimport smtplibfrom email.message import EmailMessageimport imghdr#這里使用qq郵箱進行測試#發送普通文本#從環境變量中獲取#電子郵箱地址和密碼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識別smtp服務器smtp.ehlo()#啟用TLSsmtp.starttls()#再次識別smtpsmtp.ehlo()#登錄smtpsmtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)#smtp.set_debuglevel(1)調試使用subject = 'hello where are you ?'body ='Hi In China!!!!!!'msg = f'{subject}\n\n{body}'smtp.sendmail(EMAIL_ADDRESS,EMAIL_RECEVIER,msg)##注意這里測試的時候,發件人使用的是qq郵箱##使用163郵箱作為發件人會出很多問題。##這里的密碼是郵箱的授權碼 需要自己登錄到郵箱進行設置####使用EmailMessage對象設置郵件主題內容發送e_msg = EmailMessage()e_msg['Subject'] = 'Life is short !!!'e_msg['From'] = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_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)##發送帶附件的郵件e_msg = EmailMessage()e_msg['Subject'] = 'Image from my PC!!!'e_msg['From'] = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_msg.set_content('Image moto attached。。。')#打開圖片,添加圖片信息到e_msg中with open('0.jpg','rb') as f:file_data = f.read()file_type = imghdr.what(f.name)file_name = f.namee_msg.add_attachment(file_data,maintype='image',subtype=file_type,filename=file_name)#也可以添加多張圖片,使用for實現即可#如果是pdf文件做如下調整#e_msg.add_attachment(file_data,maintype='application',subtype='octet-stream',filename=file_name)#其他格式文件可參考apiwith smtplib.SMTP('smtp.qq.com',25) as smtp:smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)smtp.send_message(e_msg)####發送一個HTML格式的郵件e_msg = EmailMessage()e_msg['Subject'] = 'html email send!!!'e_msg['From'] = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_msg.set_content('This is a plain text email')e_msg.add_alternative("""\<!DOCTYPE html><html><body><h2 >This is an HTML Email!</h2></body></html>""", subtype='html')with smtplib.SMTP('smtp.qq.com',25) as smtp:smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)smtp.send_message(e_msg)
關于python email電子郵件怎么發送普通文本、附件、html格式郵件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。