一、前言
在日常业务中,经常会遇到需要程序发邮件提醒自己的情况。例如数据异常、工作任务进度完成情况、今日天气、今日股票行情等各种场景。如果引入发送邮箱以推进预期进度的功能,那将大大优化我们的日常。我也是近期在写国债逆回购的监控脚本时想起来用邮箱来提醒我去交易,以免错过了白嫖利息的时间,同时提高自己闲钱的利用率。
二、前期准备
-
qq邮箱,发送邮件用的一个,接收邮件的可以多个
-
手机号,绑定qq邮箱用
-
开通SMTP邮箱服务:
点击左上角“设置”
点击“账号”
下方有个“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,点击开通服务(需要绑定手机号),然后就能拿到授权码。
-
Python 3.0+
三、代码实现
import smtplib
from email.mime.text import MIMEText
def send_email():
# 设置邮箱账号
account = "xxx@qq.com"
# 设置邮箱授权码
token = "xxx"
# 实例化smtp对象,设置邮箱服务器,端口
smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
# 登录qq邮箱
smtp.login(account, token)
# 设置要发送的文本
content = 'Hello world ! code_space '
# 创建邮件对象,plain是文本类型
email_content = MIMEText(content, 'plain', 'utf-8')
# 设置发送者信息
email_content['From'] = 'xxx@qq.com'
# 设置接受者信息
email_content['To'] = 'code_space接收'
# 设置邮件标题
email_content['Subject'] = '来自code_space的一封信,提醒你前去完成任务'
# 发送邮件
smtp.sendmail(account, 'xxx@qq.com', email_content.as_string())
# 关闭邮箱服务
smtp.quit()
if __name__ == '__main__':
send_email()
四、拓展
-
有了发送邮箱的核心代码,我们可以搭配windows/linux定时脚本去定时执行。
-
接着我写的监控国债逆回购的脚本,可以实现这样一个需求:
- 交易日的9:30~14:30期间,爬虫每分钟监控利率
- 当交易日的9:30~14:30期间的利率达到4.0%时, 发送邮件给自己去交易
- 当日提醒后关闭爬虫,默认我已经收到提醒并且去完成交易了
-
善学善用才是程序员的正确方向。