用Python自动发送一封得体的邮件

用 Python 自动发送一封邮件,可以提前设置好规范的邮件模板,让你避免犯一些低级的错误,摆脱简单重复的操作。

在 Python 中,有两个内置的模块,分别是 smtplib 和 email,其中 smtplib 主要负责发送邮件,email 主要负责构造邮件的内容和格式。

1. 导入模块

首先,我们导入相应的模块:

# 导入库
import smtplib
import email
from email.mime.text import MIMEText 
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart 
from email.header import Header

2. 设置参数

其次,我们设置相关的参数,包括 SMTP 服务器、发件人和收件人的邮箱地址等,请相应修改为自己的信息。

# 设置 SMTP 服务器地址
mail_host = 'smtp.163.com'

# 设置发件人邮箱
mail_sender = 'sender@163.com'

# 设置邮箱授权码,注意这里不是邮箱密码
mail_license = 'sender_password'

# 收件人邮箱,可以为多个收件人,用逗号隔开
mail_receivers = ['receiver_1@qq.com', 'receiver_2@163.com']

3. 构造内容

接下来,我们构造邮件的内容,包括主题、正文、附件等等,其中附件的路径和文件名等信息,要根据实际情况进行调整。

# 将多个对象集合起来
mm = MIMEMultipart('related')

# 邮件主题
subject_content = '每日销售数据分析'

# 设置发送者, 注意严格遵守格式, 里面邮箱为发件人邮箱
mm['From'] = "sender_name<sender@163.com>"

# 设置接受者, 注意严格遵守格式, 里面邮箱为接受者邮箱
mm['To'] = "receiver_1_name<receiver_1@qq.com>,receiver_2_name<receiver_2@163.com>"

# 设置邮件主题
mm['Subject'] = Header(subject_content, 'utf-8')

# 邮件正文内容
body_content = """
<html><p>
王总,您好!
<br>&nbsp;&nbsp;&nbsp;&nbsp;
昨天销售额108万,比前天增加5%,目标完成率为<b>108%</b>,整体业绩表现良好。
<br>&nbsp;&nbsp;&nbsp;&nbsp;
附件是每日销售报表,请您查收。
<br><hr>
Best Regards<br>
林骥<br>
数据分析部
</p><html>
"""

# 构造文本
message_text = MIMEText(body_content, 'html', 'utf-8')

# 向邮件对象中添加文本对象
mm.attach(message_text)

# 构造附件
atta = MIMEText(open('../data/每日销售报表.xlsx', 'rb').read(), 'base64', 'utf-8')

# 设置附件信息
atta['Content-Disposition'] = 'attachment; filename="daily_sale_report.xlsx"'

# 添加附件到邮件信息当中去
mm.attach(atta)

 

4. 发送邮件

最后,用 smtplib 发送邮件,如果前面的参数和内容设置正确,那么就会提示邮件发送成功。​​​​​​​


# 创建 SMTP 对象
stp = smtplib.SMTP()

# 用邮箱域名和端口进行连接
stp.connect(mail_host, 25)  

# 登录邮箱
stp.login(mail_sender, mail_license)

# 发送邮件
stp.sendmail(mail_sender, mail_receivers, mm.as_string())

# 关闭 SMTP 对象
stp.quit()

print("邮件发送成功")

5. 邮件结果

看到「邮件发送成功」之后,前往收件人的邮箱,就可以看到用 Python 自动发送过来的邮件。

图片

对于数据分析师来讲,建议在发送邮件之前,要先对数据进行分析,提炼出数据反映的亮点和不足,并在邮件正文中写出主要分析结论,让决策者能快速抓住业务重点,从而做出更加科学的决策。

不要为了发邮件而发邮件,如果只是简单地复制粘贴表格,那么让机器人自动发送就可以了。

我们应该让机器人成为我们的得力助手,自动帮我们做一些枯燥乏味的重复工作,让我们能够腾出时间和精力,去研究和分析数据背后的故事,挖掘出更有价值的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值