Python实现邮件的批量发送的示例代码
1发送文本信息
'''加密发送文本邮件'''
defsendEmail(from_addr,password,to_addr,smtp_server):
try:
msg=MIMEText('你好,来自信息化工程所的问候...','plain','utf-8')#文本邮件
#msg=MIMEText('你好
'+'sendby信息化工程所
...
'+'','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("加密后邮件发送成功!")
exceptExceptionase:
print("发送失败:"+e)
2发送带图片附件的邮件
'''发送带图片附件的邮件'''
defsendFileEmail(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('sendwithfile...','plain','utf-8'))
#msg.attach(MIMEText('你好
'+'sendby
'+'','html','utf-8'))#网页文件
#添加附件就是加上一个MIMEBase,从本地读取一个图片:
withopen(r'./file/图片.png','rb')asf:
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("带图片邮件发送成功!")
exceptExceptionase:
print("发送失败:"+e)
3发送带图片附件的邮件
'''发送带图片附件的邮件'''
defsendFilesEmail(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("带图片邮件发送成功!")
exceptExceptionase:
print("发送失败:"+e)
4完整代码
fromemailimportencoders
fromemail.headerimportHeader
fromemail.mime.textimportMIMEText
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.baseimportMIMEBase
fromemail.mime.applicationimportMIMEApplication
fromemail.utilsimportparseaddr,formataddr
importsmtplib
def_format_addr(s):
name,addr=parseaddr(s)
returnformataddr((Header(name,'utf-8').encode(),addr))
'''加密发送文本邮件'''
defsendEmail(from_addr,password,to_addr,smtp_server):
try:
msg=MIMEText('你好,来自信息化工程所的问候...','plain','utf-8')#文本邮件
#msg=MIMEText('你好
'+'sendby
信息化工程所...
'+'','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("加密后邮件发送成功!")
exceptExceptionase:
print("发送失败:"+e)
'''发送带图片附件的邮件'''
defsendFileEmail(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('sendwithfile...','plain','utf-8'))
#msg.attach(MIMEText('你好
'+'sendby
'+'','html','utf-8'))#网页文件
#添加附件就是加上一个MIMEBase,从本地读取一个图片:
withopen(r'./file/图片.png','rb')asf:
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("带图片邮件发送成功!")
exceptExceptionase:
print("发送失败:"+e)
'''发送带图片附件的邮件'''
defsendFilesEmail(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("带图片邮件发送成功!")
exceptExceptionase:
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实现邮件的批量发送的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。