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' # 郵箱登錄用戶名
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)文章
numpy.array 操作使用簡(jiǎn)單總結(jié)
這篇文章主要介紹了numpy.array 操作使用簡(jiǎn)單總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
舉例講解Python中metaclass元類(lèi)的創(chuàng)建與使用
在Python中我們用type函數(shù)可以動(dòng)態(tài)地創(chuàng)建一個(gè)元類(lèi),同樣也可以用__metaclass__屬性來(lái)指定一個(gè)元類(lèi),接下來(lái)我們就來(lái)具體舉例講解Python中metaclass元類(lèi)的創(chuàng)建與使用2016-06-06
Python接口自動(dòng)化淺析如何處理接口依賴(lài)
本文主要介紹如何提取token、將token作為類(lèi)屬性全局調(diào)用及充值接口如何攜帶token進(jìn)行請(qǐng)求,其他接口調(diào)用的前提條件是當(dāng)前用戶必須是登錄狀態(tài),如何處理接口依賴(lài)2021-08-08
Python?selenium?find_element()示例詳解
selenium定位元素的函數(shù)/方法可以分為兩類(lèi):find_element及find_elements,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?find_element()的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python中的Numeric包和Numarray包使用教程
這篇文章主要介紹了Python中的Numeric包和Numarray包使用教程,來(lái)自IBM官方網(wǎng)站上的技術(shù)文檔,需要的朋友可以參考下2015-04-04
python實(shí)現(xiàn)上傳樣本到virustotal并查詢(xún)掃描信息的方法
這篇文章主要介紹了python實(shí)現(xiàn)上傳樣本到virustotal并查詢(xún)掃描信息的方法,是比較實(shí)用的技巧,需要的朋友可以參考下2014-10-10
python文字和unicode/ascll相互轉(zhuǎn)換函數(shù)及簡(jiǎn)單加密解密實(shí)現(xiàn)代碼
這篇文章主要介紹了python文字和unicode/ascll相互轉(zhuǎn)換函數(shù)及簡(jiǎn)單加密解密實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

