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)容讀進來:
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)容讀進來:
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中metaclass元類的創(chuàng)建與使用
在Python中我們用type函數(shù)可以動態(tài)地創(chuàng)建一個元類,同樣也可以用__metaclass__屬性來指定一個元類,接下來我們就來具體舉例講解Python中metaclass元類的創(chuàng)建與使用2016-06-06
Python?selenium?find_element()示例詳解
selenium定位元素的函數(shù)/方法可以分為兩類:find_element及find_elements,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?find_element()的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python中的Numeric包和Numarray包使用教程
這篇文章主要介紹了Python中的Numeric包和Numarray包使用教程,來自IBM官方網(wǎng)站上的技術(shù)文檔,需要的朋友可以參考下2015-04-04
python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法
這篇文章主要介紹了python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法,是比較實用的技巧,需要的朋友可以參考下2014-10-10
python文字和unicode/ascll相互轉(zhuǎn)換函數(shù)及簡單加密解密實現(xiàn)代碼
這篇文章主要介紹了python文字和unicode/ascll相互轉(zhuǎn)換函數(shù)及簡單加密解密實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08

