yagmail——快速发送邮件

                                                  yagmail——快速发送邮件

 

目标:如何利用python中的yagmail包,快速发送邮件。

 

python写的一个简单demo脚本代码如下:

import yagmail
import pandas as pd
from loguru import logger

# 保存excel文件
contents = pd.DataFrame()
contents["name"] = ["张三", "李四"]
contents["age"] = [13, 14]
writer = pd.ExcelWriter("output.xlsx")
contents.to_excel(writer, sheet_name="demo", index=False)
writer.save()

# 邮件发送
yagmail_server = yagmail.SMTP(user="xxxxxxx@qq.com", password="yyyyyyyy", host="smtp.qq.com")
email_name = ["xxxxxxxx@qq.com"]
email_title = ["demo"]
email_content = ["你好"]
email_attachment = ["output.xlsx"]
yagmail_server.send(to=email_name, subject=email_title, contents=email_content, attachments=email_attachment)
yagmail_server.close()
logger.info("邮件发送完毕!")

说明,邮件发送需要准备以下几个内容:

  • 发送人的账号(如xxxxxxxx@qq.com)、授权码(如yyyyyyyyyy),服务器host(如qq邮箱的smtp.qq.com)
  • 收件人账号
  • 邮件标题(可不要)
  • 邮件内容(可不要)
  • 邮件附件(可不要,提供附件的路径即可)

说明:

1. 发送人的授权码如何获取?以QQ邮件为例(其他邮箱类似)

【qq邮箱——设置——账户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——IMAP/SMTP服务——开启】

2. 公共邮箱:添加端口号与smtp的属性即可(详细请百度解决)。

 

发送后的效果如下:

运行结果:

2020-08-30 00:29:23.542 | INFO     | __main__:<module>:36 - 邮件发送完毕!

附件output.xlsx内容如下:

 

如果想定时发送怎么设置呢?

from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler(timezone="Asia/Shanghai")  # 时区
@scheduler.scheduled_job("cron", day_of_week="*", hour="14", minute="05")
函数体

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值