Python如何实现发送带有pdf附件的电子邮件(python,开发技术)

时间:2024-04-29 20:12:08 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、如何使用Python发送电子邮件

使用Python发送电子邮件我们可以借用smtplib模块,smtplib是一个 Python 库,用于使用简单邮件传输协议(SMTP)发送电子邮件。 smtplib是内置模块; 我们不需要安装它。 它抽象了 SMTP 的所有复杂性。发送邮件只要设置好参数即可。

二、使用步骤

1. 配置邮箱参数

下面以常用的QQ邮箱举例,需要自行修改相应参数配置。同样也适用于其它邮箱。

请先确保SMTP服务已开启,如下图。

Python如何实现发送带有pdf附件的电子邮件

QQ邮箱的发送服务器为:smtp.qq.com,邮件发送服务器端口普通为25,使用SSL,端口为465或587。

Python如何实现发送带有pdf附件的电子邮件

#1、设置邮件服务器配置信息及登录邮箱账号config={'stmpServer':'smtp.qq.com',#邮件发送服务器地址'stmpPort':25,#邮件发送服务器端口:普通为25,QQ邮箱SMTP服务器(端口465或587)'fromEmailAddr':'send@qq.com',#邮件发送方邮箱地址'password':'password',#邮箱密码}

2.发送带有pdf附件邮件完整源码(含演示代码)

#-*-coding:utf-8-*-importsmtplib#发送字符串的邮件fromemail.mime.textimportMIMEText#引入MIMEMultipartMIMEApplication类fromemail.mime.multipartimportMIMEMultipartfromemail.mime.applicationimportMIMEApplicationclassSendMail:def__init__(self,config):self.server=self.connect_mailServer(config)defconnect_mailServer(self,config):#登录并发送邮件print('trylogin')try:server=smtplib.SMTP(config['stmpServer'],config['stmpPort'])server.login(config['fromEmailAddr'],config['password'])exceptsmtplib.SMTPExceptionase:print("smtplib连接服务器报错:",e)else:print('loginsuccess')returnserverdefgenerate_email(self,subject,text,file,fromEmailAddr,toEmailAddr):#生成email主题、正文、附件信息#---------------------------发送带附件邮件-----------------------------#邮件内容设置message=MIMEMultipart()#邮件主题message['Subject']=subject#发送方信息message['From']=fromEmailAddr#接受方信息message['To']=toEmailAddr#邮件正文内容message.attach(MIMEText(text,'plain','utf-8'))#添加PDF附件withopen(file,"rb")asf:attach=MIMEApplication(f.read(),_subtype="pdf")attach.add_header('Content-Disposition','attachment',filename=str(file.split('\\')[-1]))message.attach(attach)returnmessageif__name__=='__main__': #frommailtoimportSendMail#将此文件保存为mailto.py放在调用文件同目录即可使用此语句调用,下面是调用所需代码。#1、设置邮件服务器配置信息及登录邮箱账号config={'stmpServer':'smtp.qq.com',#邮件发送服务器地址'stmpPort':25,#邮件发送服务器端口:普通为25,QQ邮箱SMTP服务器(端口465或587)'fromEmailAddr':'send@qq.com',#邮件发送方邮箱地址'password':'password',#邮箱密码}#2、构造邮件基本内容subject='这是一封测试邮件'text='测试邮件,附件是pdf'#构造附件,假设存在以下目录,注意附件路径为\\,因为在提取文件名时会用到。file='D:\\测试PDF.pdf'#3、开始发送邮件#3.1发送单封邮件:if1:#生成email主题、正文、附件信息fromEmailAddr=config['fromEmailAddr']toEmailAddr='fisrt@qq.com'mail=SendMail(config)message=mail.generate_email(subject,text,file,fromEmailAddr,toEmailAddr)mail.server.sendmail(fromEmailAddr,toEmailAddr,message.as_string())print('sendmailto'+toEmailAddr+'success')mail.server.quit()#3.2发送多封邮件,对方邮箱存为listif1:fromEmailAddr=config['fromEmailAddr']toEmailAddr_list=['fisrt@qq.com','second@qq.com']mail=SendMail(config)same=True#这里表示邮件内容一致message=Noneifisinstance(toEmailAddr_list,list):#如果列表就是多地址,使用群发fortoEmailAddrintoEmailAddr_list:ifnotsameormessageisNone:#第一次需要生成新邮件。如果每次标题不一样,请在循环内自行修改subject,text,file参数message=mail.generate_email(subject,text,file,fromEmailAddr,toEmailAddr)try:mail.server.sendmail(fromEmailAddr,toEmailAddr,message.as_string())exceptsmtplib.SMTPExceptionase:print("smtplib发送邮件报错:",e)else:print('sendmailto'+toEmailAddr+'success')print('sendmailfinished')mail.server.quit()
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python如何实现发送带有pdf附件的电子邮件的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python使用ctypes调用第三方库时出现undefined symbol错误怎么解决下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18