在使用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()
"""
遇到什么问题都可以反馈给我,我会一一进行解答,感谢各位的支持。
4万+

被折叠的 条评论
为什么被折叠?



