阿里云

只需要40行Python代码实现发送邮件功能

只需要简单的40行代码就可以实现发送邮件功能,下面我们以163邮箱为服务器,向QQ邮箱中发送内容,以前使用PHP的扩展类也实现了功能,代码高度相似。下面一起来看一下吧!

一、实现原理

利用python自带模块smtplib和email,这两个模块只需要引入即可,其中smtplib模块主要负责发送邮件,email模块主要负责构建邮件。

 

二、参数获取

此步骤主要需要163邮箱,没有163邮箱的同学可以注册一下,其他的邮箱服务器不做介绍和演示了。原理都是一样的。

1、登录163邮箱

1.png

2、填写客户端授权密码

将设置客户端授权码开启,并设置密码,此处密码需要牢记,稍后再代码中需要使用。

2.png

三、常用邮箱的smtp服务器地址

新浪邮箱:smtp.sina.com

新浪VIP:smtp.vip.sina.com

搜狐邮箱:smtp.sohu.com,

126邮箱:smtp.126.com

139邮箱:smtp.139.com

163网易邮箱:smtp.163.com

四、代码参数

主机地址:host

端口号:port

发送邮箱:sender

密码:pwd

内容:body

邮件信息设置:

标题:subject

发送人:from

接收人:to

 

五、代码

# -*- coding: utf-8 -*-
# 使用python 发送邮件至指定用户邮箱
import smtplib
from email.mime.text import MIMEText


def sent_email(email, url, code):
    host = 'smtp.163.com'
    # 设置发件服务器地址
    port = 465
    # 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式,现在一般是SSL方式
    sender = '163邮箱账号'
    # 设置发件邮箱,一定要自己注册的邮箱
    pwd = '邮箱密码'
    # 设置发件邮箱的授权码密码,根据163邮箱提示,登录第三方邮件客户端需要授权码
    body = '<h1>探测链接:' + url + ',出现错误,状态码:' + str(code) + '</h1><p>内参监控发布提示</p>'
    # 设置邮件正文,这里是支持HTML的
    msg = MIMEText(body, 'html')
    # 设置正文为符合邮件格式的HTML内容
    msg['subject'] = '监控通知'
    # 设置邮件标题
    msg['from'] = sender
    # 设置发送人
    msg['to'] = email
    # 设置接收人
    try:
        s = smtplib.SMTP_SSL(host, port)
        # 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
        s.login(sender, pwd)
        # 登陆邮箱
        s.sendmail(sender, email, msg.as_string())
        # 发送邮件!
        print('Done.sent email success')
    except smtplib.SMTPException:
        print('Error.sent email fail')


if __name__ == '__main__':
    email = '接收人邮箱地址'
    # 设置邮件接收人,可以是QQ邮箱
    sent_email(email, '网址', 200)


喜欢就点个赞吧

发表评论

需要先登录,才能发表评论哦!登录

网友评论
暂无评论