溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python實現(xiàn)郵件的批量發(fā)送的示例代碼

發(fā)布時間:2020-09-12 20:09:12 來源:腳本之家 閱讀:179 作者:伏草惟存 欄目:開發(fā)技術(shù)

1 發(fā)送文本信息

'''加密發(fā)送文本郵件'''
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') # 網(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) # 記錄詳細信息
  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><h2>你好</h2>' + '<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) # 記錄詳細信息
  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) # 記錄詳細信息
  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><h2>你好</h2>' + '<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) # 記錄詳細信息
  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><h2>你好</h2>' + '<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) # 記錄詳細信息
  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) # 記錄詳細信息
  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)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI