只需要40行Python代码实现发送邮件功能
只需要简单的40行代码就可以实现发送邮件功能,下面我们以163邮箱为服务器,向QQ邮箱中发送内容,以前使用PHP的扩展类也实现了功能,代码高度相似。下面一起来看一下吧!
一、实现原理
利用python自带模块smtplib和email,这两个模块只需要引入即可,其中smtplib模块主要负责发送邮件,email模块主要负责构建邮件。
二、参数获取
此步骤主要需要163邮箱,没有163邮箱的同学可以注册一下,其他的邮箱服务器不做介绍和演示了。原理都是一样的。
1、登录163邮箱
2、填写客户端授权密码
将设置客户端授权码开启,并设置密码,此处密码需要牢记,稍后再代码中需要使用。
三、常用邮箱的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)