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="[email protected]", password="yyyyyyyy", host="smtp.qq.com")
email_name = ["[email protected]"]
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("邮件发送完毕!")

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

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

说明:

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

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

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

 

发送后的效果如下:

yagmail——快速发送邮件_第1张图片

运行结果:

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

附件output.xlsx内容如下:

yagmail——快速发送邮件_第2张图片

 

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

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

 

你可能感兴趣的:(项目经验,基础常识,python自学,python)