Jtti Jtti Jtti
smtp配置+python脚本实现自动邮件通知 | VPS精选网

smtp配置+python脚本实现自动邮件通知

python/爬虫 6年前 (2019-06-09) 6133次浏览

在写爬虫或监控工具时,经常要用到邮件自动通知或告警。通过配置 smtp 和 python 脚本就可以很简单的实现这一功能。

SMTP 是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。

通过一个简单的实例介绍下通过 python+smtp 发送邮件的步骤

提前准备

需要两个邮箱,一个是发件箱,如 111111@163.com;一个是收件箱,如 222222@qq.com

一般需要长期稳定的运行,建议部署在 vps 上,推荐阅读

vps 上部署 python 环境。我用的系统是 ubuntu14.04,自带 python 2.7.

配置发件箱的 smtp 协议

登录 111111@163.com 邮箱,在设置->POP3/SMTP/IMAP 中,选择客户端授权密码,生成一个密码,这个密码是我们必须记住的,在脚本中会使用到。(我这里是已经生成过密码了)

smtp 配置+python 脚本实现自动邮件通知

smtp 配置+python 脚本实现自动邮件通知

实现 python 发送邮件脚本

脚本如下,需要根据自己的实际情况替换下面的发件箱、收件箱、smtp 等

#!/usr/bin/python
# coding:utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import time
import smtplib
from email.mime.text import MIMEText

class email_sender_calss():
    def send_email(self):
        sender = '111111@163.com'
        receiver = '222222@qq.com'
        smtpserver = 'smtp.163.com'
        username = '111111@163.com'
        password = 'password'
        subject = '我发送的邮件主题'
        str_html = '我发送的邮件内容'

        msg = MIMEText(str_html, 'html', 'utf-8')
        msg['Subject'] = subject
        msg['from'] = '111111@163.com'
        msg['to'] = '222222@qq.com'
        smtp = smtplib.SMTP(smtpserver)

        smtp.esmtp_features["auth"] = "PLAIN"
        (code, resp) = smtp.login(username, password)
        if 0:
            print("fail")
        else:
            print("success")
            result = smtp.sendmail(sender, receiver, msg.as_string())
            print result
            smtp.quit()
        pass
app = email_sender_calss()
app.send_email()

 

效果如下

smtp 配置+python 脚本实现自动邮件通知

注 :技术交流,获取 VPS 最新补货通知、折扣活动请加 QQ 群:283468775

VPS 精选网 , 版权所有丨如未注明 , 均为原创丨
转载请注明原文链接:smtp 配置+python 脚本实现自动邮件通知
喜欢 (2)