Python實現(xiàn)郵件的批量發(fā)送的示例代碼
更新時間:2018年01月23日 14:42:00 作者:伏草惟存
下面小編就為大家分享一篇Python實現(xiàn)郵件的批量發(fā)送的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
1 發(fā)送文本信息
'''加密發(fā)送文本郵件''' def sendEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEText('你好,來自信息化工程所的問候...', 'plain', 'utf-8') # 文本郵件 # msg = MIMEText('<html><body><h1>你好</h1>' + '<p>send by <a rel="external nofollow" rel="external nofollow" >信息化工程所 </a>...</p>' +'</body></html>', 'html', 'utf-8') # 網(wǎng)頁文件 msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 25) server.starttls() # 調(diào)用starttls()方法,就創(chuàng)建了安全連接 # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, [to_addr], msg.as_string()) # 發(fā)送信息 server.quit() print("加密后郵件發(fā)送成功!") except Exception as e: print("發(fā)送失?。? + e)
2 發(fā)送帶圖片附件的郵件
'''發(fā)送帶圖片附件的郵件''' def sendFileEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEMultipart() msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() # 郵件正文是MIMEText: msg.attach(MIMEText('send with file...', 'plain', 'utf-8')) # msg.attach(MIMEText('<html><body><h1>你好</h1>' + '<p>send by <img src=cid:0"></p>' +'</body></html>', 'html', 'utf-8')) # 網(wǎng)頁文件 # 添加附件就是加上一個MIMEBase,從本地讀取一個圖片: with open(r'./file/圖片.png', 'rb') as f: mime = MIMEBase('image', 'png', filename='圖片.png') # 設(shè)置附件的MIME和文件名,這里是png類型: mime.add_header('Content-Disposition', 'attachment',filename=('gbk', '', '圖片.png')) # 加上必要的頭信息,解決中文附件名亂碼 mime.add_header('Content-ID', '<0>') mime.add_header('X-Attachment-Id', '0') mime.set_payload(f.read()) # 把附件的內(nèi)容讀進(jìn)來: encoders.encode_base64(mime) # 用Base64編碼: msg.attach(mime) # 添加到MIMEMultipart: server = smtplib.SMTP(smtp_server, 25) # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發(fā)送信息 server.quit() print("帶圖片郵件發(fā)送成功!") except Exception as e: print("發(fā)送失敗:" + e)
3 發(fā)送帶圖片附件的郵件
'''發(fā)送帶圖片附件的郵件''' def sendFilesEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEMultipart() msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() # 郵件正文是MIMEText: msg.attach(MIMEText('發(fā)送多附件郵件...', 'plain', 'utf-8')) #---這是附件部分--- #xlsx類型附件 part = MIMEApplication(open(r'./file/foo.xlsx','rb').read()) part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx") msg.attach(part) #jpg類型附件 part = MIMEApplication(open(r'./file/圖片.png','rb').read()) part.add_header('Content-Disposition', 'attachment', filename=('gbk', '', '圖片.png')) msg.attach(part) #pdf類型附件 part = MIMEApplication(open(r'./file/foo.pdf','rb').read()) part.add_header('Content-Disposition', 'attachment', filename="foo.pdf") msg.attach(part) # #mp3類型附件 # part = MIMEApplication(open('foo.mp3','rb').read()) # part.add_header('Content-Disposition', 'attachment', filename="foo.mp3") # msg.attach(part) server = smtplib.SMTP(smtp_server, 25,timeout=30) # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發(fā)送信息 server.quit() print("帶圖片郵件發(fā)送成功!") except Exception as e: print("發(fā)送失敗:" + e)
4 完整代碼
from email import encoders from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.application import MIMEApplication from email.utils import parseaddr, formataddr import smtplib def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) '''加密發(fā)送文本郵件''' def sendEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEText('你好,來自信息化工程所的問候...', 'plain', 'utf-8') # 文本郵件 # msg = MIMEText('<html><body><h1>你好</h1>' + '<p>send by <a rel="external nofollow" rel="external nofollow" > 信息化工程所</a>...</p>' +'</body></html>', 'html', 'utf-8') # 網(wǎng)頁文件 msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 25) server.starttls() # 調(diào)用starttls()方法,就創(chuàng)建了安全連接 # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, [to_addr], msg.as_string()) # 發(fā)送信息 server.quit() print("加密后郵件發(fā)送成功!") except Exception as e: print("發(fā)送失?。? + e) '''發(fā)送帶圖片附件的郵件''' def sendFileEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEMultipart() msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() # 郵件正文是MIMEText: msg.attach(MIMEText('send with file...', 'plain', 'utf-8')) # msg.attach(MIMEText('<html><body><h1>你好</h1>' + '<p>send by <img src=cid:0"></p>' +'</body></html>', 'html', 'utf-8')) # 網(wǎng)頁文件 # 添加附件就是加上一個MIMEBase,從本地讀取一個圖片: with open(r'./file/圖片.png', 'rb') as f: mime = MIMEBase('image', 'png', filename='圖片.png') # 設(shè)置附件的MIME和文件名,這里是png類型: mime.add_header('Content-Disposition', 'attachment',filename=('gbk', '', '圖片.png')) # 加上必要的頭信息,解決中文附件名亂碼 mime.add_header('Content-ID', '<0>') mime.add_header('X-Attachment-Id', '0') mime.set_payload(f.read()) # 把附件的內(nèi)容讀進(jìn)來: encoders.encode_base64(mime) # 用Base64編碼: msg.attach(mime) # 添加到MIMEMultipart: server = smtplib.SMTP(smtp_server, 25) # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發(fā)送信息 server.quit() print("帶圖片郵件發(fā)送成功!") except Exception as e: print("發(fā)送失?。? + e) '''發(fā)送帶圖片附件的郵件''' def sendFilesEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEMultipart() msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr) msg['To'] = _format_addr('收件人 <%s>' % to_addr) msg['Subject'] = Header('郵件的主題:問候', 'utf-8').encode() # 郵件正文是MIMEText: msg.attach(MIMEText('發(fā)送多附件郵件...', 'plain', 'utf-8')) #---這是附件部分--- #xlsx類型附件 part = MIMEApplication(open(r'./file/foo.xlsx','rb').read()) part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx") msg.attach(part) #jpg類型附件 part = MIMEApplication(open(r'./file/圖片.png','rb').read()) part.add_header('Content-Disposition', 'attachment', filename=('gbk', '', '圖片.png')) msg.attach(part) #pdf類型附件 part = MIMEApplication(open(r'./file/foo.pdf','rb').read()) part.add_header('Content-Disposition', 'attachment', filename="foo.pdf") msg.attach(part) # #mp3類型附件 # part = MIMEApplication(open('foo.mp3','rb').read()) # part.add_header('Content-Disposition', 'attachment', filename="foo.mp3") # msg.attach(part) server = smtplib.SMTP(smtp_server, 25,timeout=30) # server.set_debuglevel(1) # 記錄詳細(xì)信息 server.login(from_addr, password) # 登錄郵箱服務(wù)器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發(fā)送信息 server.quit() print("帶圖片郵件發(fā)送成功!") except Exception as e: print("發(fā)送失敗:" + e) if __name__ == '__main__': from_addr = 'webter@tccxfw.com' # 郵箱登錄用戶名 password = 'TCC123' # 登錄密碼 to_addr = ['1943840362463@qq.com','jason1423@vip.qq.com','jason14449905@126.com' ] # 發(fā)送對象地址,可以多個郵箱 smtp_server='172.16.254.46' # 服務(wù)器地址,默認(rèn)端口號25 sendEmail(from_addr,password,to_addr,smtp_server)
以上這篇Python實現(xiàn)郵件的批量發(fā)送的示例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)模型與Python對象模型的相關(guān)總結(jié)
這篇文章主要介紹了Python數(shù)據(jù)模型與Python對象模型的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2021-01-01python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python DES加密與解密及hex輸出和bs64格式輸出的實現(xiàn)代碼
這篇文章主要介紹了python DES加密與解密及hex輸出和bs64格式輸出的實現(xiàn)代碼,代碼簡單易懂,非常不錯對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Python子進(jìn)程subpocess原理及用法解析
這篇文章主要介紹了Python子進(jìn)程subpocess原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識別
這篇文章主要為大家詳細(xì)介紹了基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識別,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05