Python實(shí)現(xiàn)郵件的批量發(fā)送的示例代碼
1 發(fā)送文本信息
'''加密發(fā)送文本郵件'''
def sendEmail(from_addr,password,to_addr,smtp_server):
try:
msg = MIMEText('你好,來(lái)自信息化工程所的問(wèn)候...', '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)頁(yè)文件
msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr)
msg['To'] = _format_addr('收件人 <%s>' % to_addr)
msg['Subject'] = Header('郵件的主題:?jiǎn)柡?, '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('郵件的主題:?jiǎn)柡?, '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)頁(yè)文件
# 添加附件就是加上一個(gè)MIMEBase,從本地讀取一個(gè)圖片:
with open(r'./file/圖片.png', 'rb') as f:
mime = MIMEBase('image', 'png', filename='圖片.png') # 設(shè)置附件的MIME和文件名,這里是png類(lèi)型:
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)來(lá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('郵件的主題:?jiǎn)柡?, 'utf-8').encode()
# 郵件正文是MIMEText:
msg.attach(MIMEText('發(fā)送多附件郵件...', 'plain', 'utf-8'))
#---這是附件部分---
#xlsx類(lèi)型附件
part = MIMEApplication(open(r'./file/foo.xlsx','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx")
msg.attach(part)
#jpg類(lèi)型附件
part = MIMEApplication(open(r'./file/圖片.png','rb').read())
part.add_header('Content-Disposition', 'attachment', filename=('gbk', '', '圖片.png'))
msg.attach(part)
#pdf類(lèi)型附件
part = MIMEApplication(open(r'./file/foo.pdf','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
msg.attach(part)
# #mp3類(lèi)型附件
# 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('你好,來(lái)自信息化工程所的問(wèn)候...', '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)頁(yè)文件
msg['From'] = _format_addr('信息化工程所 <%s>' % from_addr)
msg['To'] = _format_addr('收件人 <%s>' % to_addr)
msg['Subject'] = Header('郵件的主題:?jiǎn)柡?, '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('郵件的主題:?jiǎn)柡?, '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)頁(yè)文件
# 添加附件就是加上一個(gè)MIMEBase,從本地讀取一個(gè)圖片:
with open(r'./file/圖片.png', 'rb') as f:
mime = MIMEBase('image', 'png', filename='圖片.png') # 設(shè)置附件的MIME和文件名,這里是png類(lèi)型:
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)來(lá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('郵件的主題:?jiǎn)柡?, 'utf-8').encode()
# 郵件正文是MIMEText:
msg.attach(MIMEText('發(fā)送多附件郵件...', 'plain', 'utf-8'))
#---這是附件部分---
#xlsx類(lèi)型附件
part = MIMEApplication(open(r'./file/foo.xlsx','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx")
msg.attach(part)
#jpg類(lèi)型附件
part = MIMEApplication(open(r'./file/圖片.png','rb').read())
part.add_header('Content-Disposition', 'attachment', filename=('gbk', '', '圖片.png'))
msg.attach(part)
#pdf類(lèi)型附件
part = MIMEApplication(open(r'./file/foo.pdf','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
msg.attach(part)
# #mp3類(lèi)型附件
# 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' # 郵箱登錄用戶(hù)名
password = 'TCC123' # 登錄密碼
to_addr = ['1943840362463@qq.com','jason1423@vip.qq.com','jason14449905@126.com'
] # 發(fā)送對(duì)象地址,可以多個(gè)郵箱
smtp_server='172.16.254.46' # 服務(wù)器地址,默認(rèn)端口號(hào)25
sendEmail(from_addr,password,to_addr,smtp_server)
以上這篇Python實(shí)現(xiàn)郵件的批量發(fā)送的示例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
以一段代碼為實(shí)例快速入門(mén)Python2.7
這篇文章主要以一段代碼為實(shí)例、簡(jiǎn)單介紹了Python2.7的各種函數(shù)和方法以及語(yǔ)句,來(lái)自網(wǎng)絡(luò)上火爆的在線(xiàn)Python教程網(wǎng)站learnxinyminutes.com,需要的朋友可以參考下2015-03-03
Python數(shù)據(jù)模型與Python對(duì)象模型的相關(guān)總結(jié)
這篇文章主要介紹了Python數(shù)據(jù)模型與Python對(duì)象模型的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2021-01-01
python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python DES加密與解密及hex輸出和bs64格式輸出的實(shí)現(xiàn)代碼
這篇文章主要介紹了python DES加密與解密及hex輸出和bs64格式輸出的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
python3使用pyqt5制作一個(gè)超簡(jiǎn)單瀏覽器的實(shí)例
下面小編就為大家?guī)?lái)一篇python3使用pyqt5制作一個(gè)超簡(jiǎn)單瀏覽器的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
Python子進(jìn)程subpocess原理及用法解析
這篇文章主要介紹了Python子進(jìn)程subpocess原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Python數(shù)據(jù)處理的三個(gè)實(shí)用技巧分享
數(shù)據(jù)處理無(wú)所不在,掌握常用技巧,事半功倍。這篇文章將使用Pandas開(kāi)展數(shù)據(jù)處理分析,總結(jié)其中常用、好用的數(shù)據(jù)分析技巧,感興趣的可以學(xué)習(xí)一下2022-04-04
基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

