Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件
SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉方式。
python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對smtp協(xié)議進行了簡單的封裝。
Python創(chuàng)建 SMTP 對象語法如下:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
參數(shù)說明:
host: SMTP 服務器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選參數(shù)。 port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務使用的端口號,一般情況下 SMTP 端口號為25。 local_hostname: 如果 SMTP 在你的本機上,你只需要指定服務器地址為 localhost 即可。代碼如下
#coding=utf-8'''===========================Author:多測師_王sirTime:2020/5/20 17:24Wechat:15367499889Company:上海多測師信息有限公司==========================='''import osimport smtplibfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplicationfrom email.mime.multipart import MIMEMultipartfrom common.handleconfig import confdef send_email(filename, title): ''' 發(fā)送郵件的功能函數(shù) :param filename: 文件的路徑 :param title: 郵件的主題 :return: ''' # 第一步:連接郵箱的smtp服務器,并登錄 smtp = smtplib.SMTP_SSL(host=conf.get('email', 'host'), port=conf.getint('email', 'port')) smtp.login(user=conf.get('email', 'user'), password=conf.get('email', 'pwd')) # 第二步:構建一封郵件 # 創(chuàng)建一封多組件的郵件 msg = MIMEMultipart() with open(filename, 'rb') as f: content = f.read() # 創(chuàng)建郵件文本內容 text_msg = MIMEText(content, _subtype='html', _charset='utf8') # 添加到多組件的郵件中 msg.attach(text_msg) # 創(chuàng)建郵件的附件 report_file = MIMEApplication(content) report_file.add_header(’content-disposition’, ’attachment’, filename=os.path.split(filename)[-1]) # 將附件添加到多組件的郵件中 msg.attach(report_file) # 主題 msg['Subject'] = title # 發(fā)件人 msg['From'] = conf.get('email', 'from_addr') # 收件人 msg['To'] = conf.get('email', 'to_addr') # 第三步:發(fā)送郵箱 smtp.send_message(msg, from_addr=conf.get('email', 'from_addr'), to_addrs=conf.get('email', 'to_addr'))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. python excel和yaml文件的讀取封裝2. python如何實現(xiàn)word批量轉HTML3. Java8內存模型PermGen Metaspace實例解析4. python3實現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)5. moment轉化時間戳出現(xiàn)Invalid Date的問題及解決6. python爬蟲實戰(zhàn)之制作屬于自己的一個IP代理模塊7. App啟動優(yōu)化-Android性能優(yōu)化8. Docker鏡像管理常用操作代碼示例9. 詳解docker pull 下來的鏡像都存到了哪里10. Python編寫單元測試代碼實例
