-
2021-06-25 09:51:03
import smtplib from email.header import Header from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText sender = 'zhangsan@163.com' receiver = ['12345678@qq.com', 'lisi@ali.com'] smtplibstr = 'smtp.163.com' username = 'zhangsan@163.com' password = 'ABCDEFGH' #163邮箱的第三方授权码 mail_title = '主题:这是带附件的邮件' # 创建一个带附件的实例 message = MIMEMultipart() message['Subject'] = mail_title # 邮件正文内容 message.attach(MIMEText('hi,这是邮件的正文', 'plain', 'utf-8')) # 构造文件附件 pdffile = 'C:\\Users\\DELL\\Desktop\\22.pdf' pdfname = '22.pdf' pdfApart = MIMEApplication(open(pdffile, 'rb').read()) pdfApart.add_header('Content-Disposition', 'attachment', filename=pdfname) message.attach(pdfApart) try: server = smtplib.SMTP(smtplibstr) server.login(sender, password) server.sendmail(sender, receiver, message.as_string()) print('邮件发送成功!') server.quit() except smtplib.SMTPException as e: print('错误!', e) # 打印错误原因
自动发送邮件需要授权码(并不是邮箱密码),163邮箱获取授权码方式:https://jingyan.baidu.com/article/495ba841ecc72c38b30ede38.html
receiver设置收件邮箱,可选择一个或者多个。
更多相关内容 -
利用python自动发送带附件的邮件
2018-10-31 23:23:23利用python自动发送邮件 说道邮件,必须要了解相关的协议。 简单地说,SMTP管‘发’,POP3/IMAP管‘收’。 POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会...利用python自动发送邮件
说道邮件,必须要了解相关的协议。
简单地说,SMTP管‘发’,POP3/IMAP管‘收’。
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。
而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。
明白了协议还必须明白邮件服务器。python发送邮件的整个过程其实就是我利用python登陆我自己的163邮箱,然后用我自己的163邮箱给别人发邮件。当然连接我自己的163就必须用我自己的账号密码来登陆163邮件服务器的某一个端口。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。 而如下面代码,python需要首先实例化一个message的容器。然后用smtplib这个模块发送它。
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header import os smtpserver = 'smtp.163.com' smtpport = 465 sender = '*******@163.com' sender_pwd = input('请输入密码') rece = '*******@qq.com' mail_username = '' # 创建一个带附件的邮件实例 message=MIMEMultipart() # 编辑邮件的内容 # 往邮件容器中添加内容。这是邮件的主体 mail_title = '我发送的一个图片' mail_inside = MIMEText(r'这是我程序自动发送的。内含图片','plain','utf-8') # 邮件的其他属性 message['From'] = sender message['To'] = rece message['Subject'] = Header(mail_title,'utf-8') message.attach(mail_inside) #构造附件txt附件1 attr1=MIMEText(open(r'D:\houseinformation.txt','rb').read(),'base64','utf-8') attr1["content_Type"]='application/octet-stream' attr1["Content-Disposition"] = 'attachment; filename="houseinformation.txt"' # 表示这是附件,名字是啥 message.attach(attr1) # 构造图片附件2 att2 = MIMEText(open(r'D:\flower.jpg','rb').read(), 'base64', 'utf-8') att2["Content-Type"] = 'application/octet-stream' att2["Content-Disposition"] = 'attachment; filename="flower.jpg"' message.attach(att2) #构造html附件 att3 = MIMEText(open('report_test.html', 'rb').read(), 'base64', 'utf-8') att3["Content-Type"] = 'application/octet-stream' att3["Content-Disposition"] = 'attachment; filename="report_test.html"' message.attach(att3) smtpobj = smtplib.SMTP_SSL(smtpserver, port=smtpport) smtpobj.login(sender, sender_pwd) smtpobj.sendmail(sender,rece,message.as_string()) print ('邮件发送成功') smtpobj.quit()
需要注意的是。邮件系统都有针对垃圾邮件的策略。所以发送邮件的时候一不小就会被当做垃圾邮件被屏蔽。注意事项有:不能重复发送同一内容;不能高频率的发送邮件;不能发送大量的邮件。。。。。。等等。
需要交流请联系我。 rwangnqian@126.com
-
Python自动发送邮件并添加附件的源代码
2017-03-06 16:35:38该源码是针对特定网站,不是通用代码,但是具有一定的参考性,不想下载可以看我博客有相应的每个部分的代码块 http://blog.csdn.net/henni_719/article/details/60580815 -
python自动发送带附件的邮件(163邮箱,亲测可用)
2020-11-29 13:57:311.设置发送邮件邮箱的SMTP服务https://www.360kuai.com/pc/927b9f8da3555bb70?cota=4&kuai_so=1&tj_url=xz&sign=360_57c3bbd1&refer_scene=so_1设置步骤时,记住设置的邮箱的独立密码,在以下脚本中能够用到 2....1.设置发送邮件邮箱的SMTP服务
https://www.360kuai.com/pc/927b9f8da3555bb70?cota=4&kuai_so=1&tj_url=xz&sign=360_57c3bbd1&refer_scene=so_1
设置步骤时,记住设置的邮箱的独立密码,在以下脚本中能够用到
2. python脚本
import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# 创建一个带附件的邮件实例
message=MIMEMultipart()
# 邮件的其他属性
message['From'] = ''
message['Subject'] = Header(u'邮件标题发送成功', 'utf8').encode()
message['To'] = u''
# 邮件正文内容
attr2 = MIMEText('备份详情请查看附件日志', 'plain', 'utf-8')
message.attach(attr2)
#构造附件txt附件1
attr1=MIMEText(open(r'D:\j\run1.txt','rb').read(),'base64','utf-8')
attr1["content_Type"]='application/octet-stream'
attr1["Content-Disposition"] = 'attachment; filename="run1.txt"'
message.attach(attr1)
xxxxxx
server = smtplib.SMTP('smtp.163.com', 25)
server.login('jing@163.com', '填写邮箱独立密码(例123456..)')
server.sendmail('jing@163.com', ['lu@163.com'],message.as_string())
print("邮件发送成功")
3. 确认自己是否有pyhon环境
在cmd窗口下输入 python,回车后查看是否有相关版本信息,没有的话说明环境变量没有配置或者没有安装python-IDLE
4.执行python脚本
5.登录邮箱,验证是否发送/收到邮件
-
Python实现自动发送邮件功能
2020-12-23 14:13:00Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器守护程序向任何互联网机器发送邮件。 SMTP通讯的基本流程可以概括为以下几点: 1.连接SMTP服务器 2.登陆用户名和密码 3.... -
python自动化发邮件(带附件及正文显示图片)
2022-04-10 15:20:29python自动化发送邮件、一、python自动发送邮件-(附件及正文图片)
带附件邮件(1)
前言:一般我们发送邮件,整体的逻辑是这样的,先登录邮箱,发件人,收件人,主题,附件,内容
尝试自动发邮件,并且携带附件,代码如下from smtplib import SMTP_SSL from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication send_usr = '手机号@139.com' # 发件人 send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置 reverse = '136xxxx@139.com' # 接收者 content = '2022<p>python官网链接如下:</p>' \ '<p><a href="https://www.python.org">python</a></p>' #content 内容设置 headers = '2022主题' email_server = 'smtp.139.com' 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_SSL from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.mime.image import MIMEImage send_usr = '手机号@139.com' # 发件人 send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置 reverse = 'xxxxxxxxxx@139.com' # 接收者 content = '2022<p>python官网链接如下:</p>' \ '<p><a href="https://www.python.org">python</a></p>' #content 内容设置 html_img = f'<p>{content}<br><img src="cid:image1"></br></p>' # html格式添加图片 email_server = 'smtp.139.com' 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_SSL from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 发送普通文本邮件 send_usr = '手机号@139.com' # 发件人 send_pwd = '08034427124dfxxxxxx' # 授权码,邮箱设置 reverse = 'xxxxxxxx@139.com' # 接收者 #content1 内容设置 content1 = "普通文件正文" email_server = 'smtp.139.com' 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()
-
python自动发送测试报告邮件功能的实现
2020-09-19 16:57:18主要介绍了python自动发测试报告邮件功能的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
技巧 | python定时发送邮件(自动添加附件)
2021-05-25 11:07:09发送邮件2.1 导入email/smtplib相关模块2.2 email模块2.2.1 邮箱设置2.2.2 添加正文2.2.3 添加图片文件2.2.4 添加doc文件2.2.5 添加pdf文件2.2.6 添加表格文件2.3 smtplib模块3. 定时任务3.1 schedule库3.2 定时... -
Python自动发送邮件(含附件)脚本 办公自动化
2022-07-15 16:35:04自动查找规定路径内符合当天的最新文件进行附件发送。 -
Python自动发送邮件并添加附件的源代码V2.1
2017-03-08 14:25:04Python自动发送邮件并添加附件的源代码,真特定网站,比较具有参考价值 -
python自动发送带图片附件邮件
2021-11-23 09:31:04import smtplib ...#发送多种类型的邮件 from email.mime.multipart import MIMEMultipart from PIL import ImageGrab im = ImageGrab.grab() im.save('s'+'.png') msg_from = '666666666@qq.com' # 发. -
python自动发送附件为csv的邮件
2021-01-28 20:40:30文章主要讲述加载指定文件夹下面的所有csv文件为附件,并自动发送出去。1、设置邮箱的授权码以126邮箱为例,需要获取授权码进行客户端模拟登陆,从126邮箱将邮件发送出去。“设置” => POP3/SMTP/IMAP => 开启... -
【Python实用工具】巧妙利用Python实现发送带附件的邮件
2021-07-08 08:55:30Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件... -
python邮件发送带附件(可用,可以发送成功)
2021-09-08 08:02:41import smtplib from email.mime.text import MIMEText from email.mime.multipart import ... message.as_string()) print("邮件发送成功") except smtplib.SMTPException: print("Error: 无法发送邮件") sendemail() -
python办公自动化之邮件发送之多附件
2022-03-22 14:39:57工作过程中总是在重复性发送邮件,为提高时间利用率,特地写出以下代码,该代码还有很多不足请大家指教 # @desc:批量发送模板类邮件正文和多个附件 # 导入模块 import os # 用于加载附件 import smtplib # 用于... -
python实现带附件邮件的发送
2022-02-10 14:55:54import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header ...#用邮箱实现带附件邮件发送 class AttachmentEmailSender(object): def __init -
python自动发送带附件和多位收件人的邮件(163邮箱,亲测可用)
2019-10-24 09:08:541.新建py脚本,sendmail.py import smtplib from email.header import Header from email.mime.multipart import MIMEMultipart ...# 创建一个带附件的邮件实例 message=MIMEMultipart() # 邮件的其... -
利用Python发送邮件或发带附件的邮件
2020-12-16 20:48:091、使用Python发Text 邮件 import smtplib # 发送字符串的邮件 from email.mime.text import MIMEText # 设置服务器所需信息 fromEmailAddr = '发件人邮箱地址' # 邮件发送方邮箱地址 password = 'email password... -
Python自动发送邮件的方法实例总结
2020-12-25 06:23:49本文实例讲述了Python自动发送邮件的方法。分享给大家供大家参考,具体如下: python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,... -
Python 发送带 附件 邮件 脚本
2021-04-27 01:28:30Python发送普通邮件的脚本参考:Python发送RMAN备份Log脚本在这篇里主要演示一个Python发送附件邮件的脚本。参考Pytheon文档:Python版本:2.4.3https://www.cndba.cn/Dave/article/417[oracle@rac1 ~]$ cat ... -
python实现自动发送邮件发送多人、群发、多附件的示例
2020-12-24 13:51:301、最近公司实现部分数据统计、分析的报表进行每天定时发送到相关人员的邮箱之中的配置代码被人为删除了,需要重新恢复该功能,由于原先是在linux上使用shell配置发送,实在是太繁琐,所以准备使用python来实现该... -
利用Python自动发送邮件
2021-11-20 11:36:01我们把报表做出来以后一般都是需要发给别人查看,对于一些每天需要发的报表或者是需要一次发送多份的报表,这个时候可以考虑借助Python来自动发送邮件。 使用邮箱的第一步 一般我们在使用QQ邮箱、163邮箱、126邮箱等... -
python发送邮件示例(支持中文邮件标题)
2020-12-25 04:57:27复制代码 代码如下:def sendmail(login={},mail={}): ”’\ @param login login[‘user’] login[‘passwd’] @param mail mail[‘to_addr’] mail[‘subject’] mail[‘content’] mail[‘attach’] ”’ from... -
Python自动发送和收取邮件的方法
2020-12-17 08:58:19作为课代表,经常要做的两件事是:帮忙发作业和帮忙收作业,而且很多时候是通过邮件来完成的,如果手动一封一封的收取和发送就很浪费时间——人生苦短,我用Python。 直接上代码,不想了解细节原理直接拉到最后,我... -
python定时发送带附件outlook邮件
2022-04-14 17:03:11reciList = ['xxx@xxxxx] #收件人 for i in range(len(reciList)): mail_item = outlook.CreateItem(0) # 0: olMailItem mail_item.Recipients.Add(reciList[i]) mail_item.Subject = '来自系统自动发送的邮件' mail... -
python实现自动发送报警监控邮件
2020-12-25 16:20:42本文实例为大家分享了python自动发送报警监控邮件 的具体代码,供大家参考,具体内容如下 因为有一些日常任务需要每日检查日否执行正确,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就... -
用python代码发送带excel附件的电子邮件(每天一个python小项目)
2022-05-29 14:55:31= Header('Python课程数据', 'utf-8') # 主题 # 添加Excel类型附件 file_name = 'D:/桌面/test.xlsx' # 文件名 file_path = os.path.join(file_name) # 文件路径 xlsx = MIMEApplication(open(file_path, 'rb').... -
python笔记:python实现带附件的邮件自动发送
2020-11-29 13:57:31目标:设置邮件自动发送本文按照《对比Excel,轻松学习Python数据分析》中第14章自动发送电子邮件实例编写,试验成功,分享代码给大家 #!/usr/bin/env python# coding: utf-8# In[2]:import smtplibfrom email import... -
python 发送邮件 普通邮件 HTML 发送带附件 群发邮件
2022-07-18 16:29:50发送邮件 普通邮件 HTML 发送带附件 群发邮件