python使用smtplib模塊發(fā)送郵件
使用smtplib模塊發(fā)送郵件,供大家參考,具體內容如下
1)使用smtplib模塊發(fā)送簡單郵件
步驟:
1.連接SMTP服務器,并使用用戶名、密碼登陸服務器
2.創(chuàng)建EmailMessage對象,該對象代表了郵件本身
3.調用sendmail()方法發(fā)送郵件
示例:
- 我用自己的QQ郵箱(英文地址)給自己(原始地址)發(fā)一封郵件(QQ郵箱需要授權碼(詳見))
- smtplib.SMTP() 代表的普通SMTP連接(默認端口21)
- smtplib.SMTP_SSL() 代表基于SSL的SMTP連接(默認端口456,安全)
import smtplib import email.message fromaddr = 'wk_helloworld@qq.com' # 賬號 password = '****************' # QQ授權碼 conn = smtplib.SMTP_SSL('smtp.qq.com', 465) # 創(chuàng)建SMTP連接 conn.login(fromaddr, password) # 登錄郵件服務器 msg = email.message.EmailMessage() # 創(chuàng)建郵件對象 msg.set_content('您好,Python郵件') # 設置郵件內容(普通郵件) conn.sendmail(fromaddr, ['929667257@qq.com'], msg.as_string()) # 發(fā)送郵件 conn.quit() # 退出連接
2)發(fā)送內容完整的郵件
- 為郵件設置標題、發(fā)件人名字、收件人名(設置 EmailMessage 對象對應的屬性)
- EmailMessage的set_content() 方法的第二個參數(shù)設置為 html 可將郵件內容改為 HTML 格式
import smtplib import email.message fromaddr = 'wk_helloworld@qq.com' password = '****************' conn = smtplib.SMTP_SSL('smtp.qq.com', 465) conn.login(fromaddr, password) msg = email.message.EmailMessage() msg.set_content('<h2>HTML郵件<h2>' + '<div style="border:1px:solid red">HTML郵件內容</div>', 'html', 'UTF-8') msg['subject'] = 'HTML郵件' msg['from'] = '癡迷<%s>' % fromaddr msg['to'] = '淡然<%s>' % '929667257@qq.com' conn.sendmail(fromaddr, ['929667257@qq.com'], msg.as_string()) conn.quit()
3)發(fā)送圖文并茂的郵件
在郵件中插入圖片,需要先調用 EmailMessage 的 add_attachment() 方法來添加附件,該方法參數(shù):
- maintype:指定附件的主要類型
- subtype:指定附件的子類型
- filename:指定該附件的文件名
- cid=img:指定該附件的資源 ID
通過<img…/>元素來插入附件中的圖片(引用附件的cid屬性)
import smtplib import email.message import email.utils fromaddr = 'wk_helloworld@qq.com' password = '****************' toaddr = '929667257@qq.com' conn = smtplib.SMTP_SSL('smtp.qq.com', 465) conn.login(fromaddr, password) msg = email.message.EmailMessage() first_id = email.utils.make_msgid() msg.set_content('<h2>HTML郵件<h2>' + '<div style="border:1px:solid red">html郵件內容</div>' + '<img src="cid:' + first_id[1:-1] + '">', 'html', 'UTF-8') msg['subject'] = 'HTML郵件' msg['from'] = 'wk<%s>' % fromaddr msg['to'] = 'k<%s>' % toaddr # 添加附件 with open('圖1.jpg', 'rb') as f: # 附件指定cid后,郵件正文可通過該cid來引用該圖片 msg.add_attachment(f.read(), maintype='image', subtype='jepg', filename='test1.jpg', cid=first_id) with open('圖2.jpg', 'rb') as f: msg.add_attachment(f.read(), maintype='image', subtype='jepg', filename='test2.jpg') # with open('圖3.gif', 'rb') as f: # msg.add_attachement(f.read(), maintype='image', subtype='gif', filename='test.jpg') conn.sendmail(fromaddr, [toaddr], msg.as_string()) conn.quit()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
tensorflow之自定義神經(jīng)網(wǎng)絡層實例
今天小編就為大家分享一篇tensorflow之自定義神經(jīng)網(wǎng)絡層實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python編程快速上手——Excel表格創(chuàng)建乘法表案例分析
這篇文章主要介紹了Python Excel表格創(chuàng)建乘法表,結合具體實例形式分析了Python接受cmd命令操作Excel文件創(chuàng)建乘法表相關實現(xiàn)技巧,需要的朋友可以參考下2020-02-02python return邏輯判斷表達式實現(xiàn)解析
這篇文章主要介紹了python return邏輯判斷表達式實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12python中break、continue 、exit() 、pass終止循環(huán)的區(qū)別詳解
這篇文章主要介紹了python中break、continue 、exit() 、pass終止循環(huán)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07