用Python定时发送邮件
自学Python一个多月了,下午无聊写了一个定时给我的好基友们发邮件,提醒他们吃饭的小程序:
下边是代码:
import smtplib #发信动作
from email.mime.text import MIMEText #构建内容
from email.header import Header #构建表头
import time
localtime = time.asctime( time.localtime(time.time()) ) #获取当前时间
a=int(time.strftime("%H",time.localtime())) #当前是几点
from_addr='这里写发件邮箱'
password='这里写授权码'
to_addrs=['列表里写好基友们的邮箱']
smtp_server='smtp.qq.com'
text='''干饭小助手提醒你:
现在是'''+localtime+ '''
到点了,记得按时干饭!'''#邮件内容
name='这里写发件人'
name_a='这里是收件人'
name_b='到点了干饭了'#这个是标题
s=True
while s:
if a == 8: #因为没有写的很精确,所以只要是在八点运行程序就会自动发送
for to_addr in to_addrs:
msg = MIMEText(text, 'plain', 'utf-8')
msg['From'] = Header(name)
msg['To'] = Header(name_a)
msg['Subject'] = Header(name_b)
server = smtplib.SMTP_SSL()
server.connect(smtp_server, 465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit
s=False
elif a == 12:
for to_addr in to_addrs:
msg = MIMEText(text, 'plain', 'utf-8')
msg['From'] = Header(name)
msg['To'] = Header(name_a)
msg['Subject'] = Header(name_b)
server = smtplib.SMTP_SSL()
server.connect(smtp_server, 465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit
s=False
elif a == 20:
for to_addr in to_addrs:
msg = MIMEText(text, 'plain', 'utf-8')
msg['From'] = Header(name)
msg['To'] = Header(name_a)
msg['Subject'] = Header(name_b)
server = smtplib.SMTP_SSL()
server.connect(smtp_server, 465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit
s=False
else:
s=True
#这个只能发送qq邮箱
初学理解不到位,写的不够简练,再学一段时间再来修改!欢迎大家给我提建议!
对了,发件邮箱要打开POP3/SMTP服务:先进入邮箱——邮箱设置——账户——下拉
打开后就会有一个黄色框:授权码就是在这里生成的!