您好,登錄后才能下訂單哦!
1 發送文本信息
'''加密發送文本郵件''' def sendEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEText('你好,來自信息化工程所的問候...', 'plain', 'utf-8') # 文本郵件 # msg = MIMEText('<html><body><h2>你好</h2>' + '<p>send by <a rel="external nofollow" rel="external nofollow" >信息化工程所 </a>...</p>' +'</body></html>', 'html', 'utf-8') # 網頁文件 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() # 調用starttls()方法,就創建了安全連接 # server.set_debuglevel(1) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, [to_addr], msg.as_string()) # 發送信息 server.quit() print("加密后郵件發送成功!") except Exception as e: print("發送失敗:" + e)
2 發送帶圖片附件的郵件
'''發送帶圖片附件的郵件''' 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><h2>你好</h2>' + '<p>send by <img src=cid:0"></p>' +'</body></html>', 'html', 'utf-8')) # 網頁文件 # 添加附件就是加上一個MIMEBase,從本地讀取一個圖片: with open(r'./file/圖片.png', 'rb') as f: mime = MIMEBase('image', 'png', filename='圖片.png') # 設置附件的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()) # 把附件的內容讀進來: encoders.encode_base64(mime) # 用Base64編碼: msg.attach(mime) # 添加到MIMEMultipart: server = smtplib.SMTP(smtp_server, 25) # server.set_debuglevel(1) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發送信息 server.quit() print("帶圖片郵件發送成功!") except Exception as e: print("發送失敗:" + e)
3 發送帶圖片附件的郵件
'''發送帶圖片附件的郵件''' 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('發送多附件郵件...', '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) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發送信息 server.quit() print("帶圖片郵件發送成功!") except Exception as e: print("發送失敗:" + 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)) '''加密發送文本郵件''' def sendEmail(from_addr,password,to_addr,smtp_server): try: msg = MIMEText('你好,來自信息化工程所的問候...', 'plain', 'utf-8') # 文本郵件 # msg = MIMEText('<html><body><h2>你好</h2>' + '<p>send by <a rel="external nofollow" rel="external nofollow" > 信息化工程所</a>...</p>' +'</body></html>', 'html', 'utf-8') # 網頁文件 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() # 調用starttls()方法,就創建了安全連接 # server.set_debuglevel(1) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, [to_addr], msg.as_string()) # 發送信息 server.quit() print("加密后郵件發送成功!") except Exception as e: print("發送失敗:" + e) '''發送帶圖片附件的郵件''' 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><h2>你好</h2>' + '<p>send by <img src=cid:0"></p>' +'</body></html>', 'html', 'utf-8')) # 網頁文件 # 添加附件就是加上一個MIMEBase,從本地讀取一個圖片: with open(r'./file/圖片.png', 'rb') as f: mime = MIMEBase('image', 'png', filename='圖片.png') # 設置附件的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()) # 把附件的內容讀進來: encoders.encode_base64(mime) # 用Base64編碼: msg.attach(mime) # 添加到MIMEMultipart: server = smtplib.SMTP(smtp_server, 25) # server.set_debuglevel(1) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發送信息 server.quit() print("帶圖片郵件發送成功!") except Exception as e: print("發送失敗:" + e) '''發送帶圖片附件的郵件''' 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('發送多附件郵件...', '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) # 記錄詳細信息 server.login(from_addr, password) # 登錄郵箱服務器 server.sendmail(from_addr, to_addr, msg.as_string()) # 發送信息 server.quit() print("帶圖片郵件發送成功!") except Exception as e: print("發送失敗:" + e) if __name__ == '__main__': from_addr = 'webter@tccxfw.com' # 郵箱登錄用戶名 password = 'TCC123' # 登錄密碼 to_addr = ['1943840362463@qq.com','jason1423@vip.qq.com','jason14449905@126.com' ] # 發送對象地址,可以多個郵箱 smtp_server='172.16.254.46' # 服務器地址,默認端口號25 sendEmail(from_addr,password,to_addr,smtp_server)
以上這篇Python實現郵件的批量發送的示例代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。