【Python】5分钟实现邮件定时自动发送(smtplib模块)

在使用Python做脚本时,我们需要知道脚本在何时运行完成,或者知道脚本出了什么错误,将错误及时反馈出来,这个时候就需要使用python中的邮件发送模块,即smtplib模块。

具体到模块如何使用,我在下面的实例代码中已经进行了逐行注释。在下面的实例中我们进行了基本的邮件配置及邮件发送,同时还附带了两种邮件发送的执行方法,包括一次性发送多个邮件,以及设定某个时间进行发送。当然了,我们也可以把邮件发送的部分放到任何脚本和程序后面,在程序执行完毕时自动发送邮件。

实例以qq邮箱为例,实现邮件自动发送并不复杂,只需要配置好各个参数即可,如下:

import smtplib  # 邮件发送模块
from email.mime.text import MIMEText
from email.header import Header
# import schedule  # 定时运行模块


def email_send():
    # 邮件配置信息
    smtp_server = 'smtp.qq.com'  # 邮箱服务器
    smtp_port = 465  # 邮箱端口
    smtp_ssl = True  # 启用ssl
    smtp_user = '123456789@qq.com'
    smtp_password = 'wadsdbkbtymcgkb'  # 邮箱授权码,到邮箱网站中查看

    # 发送邮件信息
    sender = '123456789@qq.com'  # 发送者邮箱
    receivers = ['888888888@qq.com']  # 接收者邮箱

    # 邮件正文
    mail_content = 'Python 邮件发送测试...'  # 邮件正文内容
    message = MIMEText(mail_content, 'plain', 'utf-8')  # 邮件正文格式

    # 邮件信息配置
    message['From'] = '123456789@qq.com'  # 邮件标头中发件人,不影响实际发送邮箱
    message['To'] = '888888888@qq.com'  # 邮件标头中收件人,不影响实际送达邮箱
    message['Subject'] = Header("猜猜我是谁?", 'utf-8')  # 邮件标题

    # 发送邮件
    try:
        smtp_obj = smtplib.SMTP_SSL(smtp_server, smtp_port)  # 连接服务器
        smtp_obj.login(smtp_user, smtp_password)  # 登入发送者邮箱
        smtp_obj.sendmail(sender, receivers, message.as_string())  # 发送邮件指令
        print("邮件发送成功")

    except smtplib.SMTPException as e:
        print("Error: 邮件发送失败: ", e)


# 其他发送邮件方式
# Method-1 #
"""

# 设定邮件发送次数 #
send_times = 5  # 设定邮件发送次数
while send_times > 0:
    email_send()
    send_times = send_times - 1
    
"""

# Method-2
"""

# 设定邮件定时发送时间 #
schedule.every().day.at("08:00").do(email_send)
while True:
    schedule.run_pending()
    
"""

遇到什么问题都可以反馈给我,我会一一进行解答,感谢各位的支持。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值