文章目录
Python发送邮件
首先跟大家分享一下我个人用这个Python发送邮件的用途:在我们运行代码/程序的时候,由于一般是放在服务器上运行或者无法一直人工监视,所有我个人习惯通过添加邮件的方法来发送代码/程序执行的一些日志/情况,这样我们就可以轻松的了解我们的程序运行情况,当然,这个仅仅是我个人用的比较多的地方,其实它还有很多用途,这里就不过多介绍了…
直接上代码
- 这里说明一下,这个代码是可以直接运行的,由于安全的问题,我已经把自己的邮箱地址和授权码去掉,大家只需要添加一下对应的邮箱地址和邮箱授权码便可以直接使用,代码
支持群发和添加附件
- **
由于代码过长,我会把整个文档打包分享给大家
**这里展示部分代码 - 点击这里获取完整源码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
class SendEmail:
def __init__(self, subject, body, fj="", receivers=['默认收件箱地址',],
sender='发件人地址也是邮箱服务器地址', password='邮箱授权码,注意不是密码'): # fj是附件的地址
"""
这是一个发送邮件的方法,可发送附件,默认不发送,
方法以默认添加了发送服务器和收件箱,也可以自行修改
:type subject: str
:type body: str
:type fj: str
:type receivers: list
:type sender: str
:type password: str
:param subject: 邮件标题
:param body: 邮件内容
:param fj: 附件的地址,省略则不带附件
:param receivers: 收件人地址,可省略
:param sender: 发件人地址,可省略
:param password: 发件人授权码,非密码,可省略
"""
# 邮件的标题
self.subject = subject
# 邮件的内容
self.body = body
# 附件地址,默认 为空 不带附件
self.fj = fj
# 发送邮箱
self.sender = sender
# 发送者的邮箱账号和授权码,是授权码不是密码
self.password = password
# 接收邮箱
self.receivers = receivers
def send_email(self):
...
注意点
源码有很详细的注释,我相信大家通过源码的注释就可以很清楚的了解整个代码了,但是这边我还是说几个注意点
- 邮箱需开启 SMTP 服务,很多邮箱默认是关闭的,具体的开启方法大家可以自行百度一下
- 开启SMTP之后需要从设置后台获取
授权码
- 本代码是以
163网易邮箱
为例,大家如果使用其他的邮箱需要修改对应的地址以及SMTP端口
- 使用
msg['Bcc']
加密抄送群发,可以过滤无效邮箱避免程序报错 - 点击这里获取完整源码