Home > Article > Backend Development > Tips | Python sends emails regularly (automatically adding attachments) without getting stuck
email## -- Set email format and content
smtplib -- Send email
Log in to your QQ mailbox and open Settings-Account (The operation here is a personal email, for corporate email, select Other EmailThat’s it):
The following four items are all off for the first operation (I have already turned them on here). Click on the latter to open and require binding. Send "Configuration Email Client" to the designated number on your designated mobile phone, just follow the instructions, and then you will receive Service Authorization Code.
2.2 email module MIMEImage: represents Picture object MIMEMultipart( has three subtypes): mixed, alternative, related. 2.2.1 ##Email Settings 2.2.2 添加正文 2.2.3 添加图片文件 2.2.4 添加doc文件 2.2.5 添加pdf文件 2.2.6 添加表格文件
2.3 smtplib module ##Client email sending: ##3.1 schedule library 效果: 3.2 定时发送邮件 以下是几个周期发送邮件的语法,大家可以自行运行: 完。from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
# 设置邮箱的域名
HOST = 'smtp.qq.com'
# 设置邮件标题
SUBJECT = '工作汇报'
# 设置发件人邮箱
FROM = 'aaa@qq.com'
# 设置收件人邮箱,可以同时发送到多个邮箱(用list)
TO = 'bbb@qq.com'
# 设置附件模式
message = MIMEMultipart('mixed')
''' 添加正文 '''
content = '欧sir,附件为最新日期文件,请查收!'
content_msg = MIMEText(content)
message.attach(content_msg)
image_file = open('Python当打之年.jpg', 'rb').read()
image = MIMEImage(image_file)
image.add_header('Content-Disposition', 'attachment', filename='Python当打之年.jpg')
message.attach(image)
doc = '算法与数据结构.doc'
doc_file = MIMEApplication(open(doc, 'rb').read())
doc_file.add_header('Content-Disposition', 'attachment', filename=doc)
message.attach(doc_file)
pdf = 'Python高性能编程.pdf'
pdf_file = MIMEApplication(open(pdf, 'rb').read())
pdf_file.add_header('Content-Disposition', 'attachment', filename=pdf)
message.attach(pdf_file)
csv_file = open('blockdtas.xlsx', 'rb').read()
csv = MIMEApplication(csv_file)
csv.add_header('Content-Disposition', 'attachment', filename='blockdtas.xlsx')
message.attach(csv)
# 获取SSL证书
email_client = smtplib.SMTP_SSL(host='smtp.qq.com')
# 设置域名和端口,端口为465
email_client.connect(HOST, '465')
# 邮箱授权码
email_client.login(FROM, '你的授权码')
email_client.sendmail(from_addr=FROM, to_addrs=TO.split(','), msg=message.as_string())
# 关闭邮件发送客户端
email_client.quit()
import schedule as schedule
def func():
print('{} 执行func'.format(time.strftime("%H:%M", time.localtime())))
schedule.every(1).minutes.do(func)
# 每1分钟执行一次任务:
schedule.every(1).minutes.do(send_email)
# 每小时执行一次任务:
schedule.every().hour.do(send_email)
# 每天在什么时间点执行一次任务:
schedule.every().day.at('17:30').do(send_email)
# 每10-20分钟(随机)执行一次任务:
schedule.every(10).to(20).minutes.do(send_email)
# 每周一执行一次任务:
schedule.every().monday.do(send_email)
# 每周一什么时间点执行一次任务:
schedule.every().monday.at('09:00').do(send_email)
# 每分钟在第45秒的时候执行任务:
schedule.every().minute.at(':45').do(send_email)
The above is the detailed content of Tips | Python sends emails regularly (automatically adding attachments) without getting stuck. For more information, please follow other related articles on the PHP Chinese website!