100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python自动化发邮件(带附件及正文显示图片)

python自动化发邮件(带附件及正文显示图片)

时间:2020-05-09 02:21:10

相关推荐

python自动化发邮件(带附件及正文显示图片)

一、python自动发送邮件-(附件及正文图片)

带附件邮件(1)

前言:一般我们发送邮件,整体的逻辑是这样的,先登录邮箱,发件人,收件人,主题,附件,内容

尝试自动发邮件,并且携带附件,代码如下

from smtplib import SMTP_SSLfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationsend_usr = '手机号@' # 发件人send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置reverse = '136xxxx@' # 接收者content = '<p>python官网链接如下:</p>' \'<p><a href="">python</a></p>' #content 内容设置headers = '主题'email_server = ''email_title = '大东Ts' # 邮件主题def send_email():msg = MIMEMultipart() # 构建主体msg['Subject'] = Header(email_title,'utf-8') # 邮件主题msg['From'] = send_usr # 发件人msg['To'] = Header('大东Ts','utf-8') # 收件人--这里是昵称msg.attach(MIMEText(content,'html','utf-8')) # 构建邮件正文attchment = MIMEApplication(open(r'D:/test.xlsx','rb').read()) # 文件attchment.add_header('Content-Disposition','attachment',filename='test.xlsx')msg.attach(attchment) # 添加附件到邮件smtp = SMTP_SSL(email_server) #指定邮箱服务器smtp.ehlo(email_server) # 部分邮箱需要smtp.login(send_usr,send_pwd) # 登录邮箱smtp.sendmail(send_usr,reverse,msg.as_string()) # 分别是发件人、收件人、格式smtp.quit() # 结束服务print('邮件发送完成--')send_email()

截图如下:

正文带图片(2)

代码如下:

from smtplib import SMTP_SSLfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationfrom email.mime.image import MIMEImagesend_usr = '手机号@' # 发件人send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置reverse = 'xxxxxxxxxx@' # 接收者content = '<p>python官网链接如下:</p>' \'<p><a href="">python</a></p>'#content 内容设置html_img = f'<p>{content}<br><img src="cid:image1"></br></p>' # html格式添加图片email_server = ''email_title = '大东Ts' # 邮件主题def send_email():msg = MIMEMultipart() # 构建主体msg['Subject'] = Header(email_title,'utf-8') # 邮件主题msg['From'] = send_usr # 发件人msg['To'] = Header('大东Ts','utf-8') # 收件人--这里是昵称# msg.attach(MIMEText(content,'html','utf-8')) # 构建邮件正文,不能多次构造attchment = MIMEApplication(open(r'D:/test.xlsx','rb').read()) # 文件attchment.add_header('Content-Disposition','attachment',filename='test.xlsx')msg.attach(attchment) # 添加附件到邮件f = open("E:\\test001.jpeg", 'rb') #打开图片msgimage = MIMEImage(f.read())f.close()msgimage.add_header('Content-ID', '<image1>') # 设置图片msg.attach(msgimage)msg.attach(MIMEText(html_img,'html','utf-8')) # 添加到邮件正文try:smtp = SMTP_SSL(email_server) #指定邮箱服务器smtp.ehlo(email_server) # 部分邮箱需要smtp.login(send_usr,send_pwd) # 登录邮箱smtp.sendmail(send_usr,reverse,msg.as_string()) # 分别是发件人、收件人、格式smtp.quit() # 结束服务print('邮件发送完成--')except:print('发送失败')send_email()

截图如下:

以上两种方式,分别是邮件带附件跟带图片的格式,如果你仅仅只是需要发送普通文件,那么也可以参考以下代码

普通文本邮件

from smtplib import SMTP_SSLfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart# 发送普通文本邮件send_usr = '手机号@' # 发件人send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置reverse = 'xxxxxxxx@' # 接收者#content1 内容设置content1 = "普通文件正文"email_server = ''email_title = '大东Ts' # 邮件主题def send_email():msg = MIMEMultipart() # 构建主体msg['Subject'] = Header(email_title,'utf-8') # 邮件主题msg['From'] = send_usr # 发件人msg['To'] = Header('大东Ts','utf-8') # 收件人--这里是昵称msg.attach(MIMEText(content1,'plain','utf-8')) # 构建邮件正文,不能多次构造try:smtp = SMTP_SSL(email_server) #指定邮箱服务器smtp.ehlo(email_server) # 部分邮箱需要smtp.login(send_usr,send_pwd) # 登录邮箱smtp.sendmail(send_usr,reverse,msg.as_string()) # 分别是发件人、收件人、格式smtp.quit() # 结束服务print('邮件发送完成--')except:print('发送失败')send_email()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。