Python十几行代码实现邮件自动发送
Posted 程序员唐丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python十几行代码实现邮件自动发送相关的知识,希望对你有一定的参考价值。
本次教程用Python十几行代码实现邮箱邮件自动发送。
一、开发环境:
安装好Python环境,需要使用的库函数:smtplib和email,这两者为Python自带库,无需安装。
二、配置发送邮箱信息
发送邮箱设置(两种方案)
1、不使用第三方服务,即本机安装 sendmail(邮件传输代理程序)
安装详情参考:https://my.oschina.net/u/588516/blog/2354019
2、使用第三方 SMTP 服务(本人亲用,大家可以自行选择)
开启SMTP方法授权,获取授权码(授权码很重要),步骤:
1)进入邮箱设置
2)找到POP3/SMTP服务,默认关闭,你需要将它开启
3)开启POP3/SMTP服务时,需要进行身份的验证,按要求来发送一条短信后,点击我已发送
4)通过验证的话,就会得到授权码了,在客户端中,配置时密码换成这个授权码就可以了
三、获取邮箱服务器地址和SSL端口号(根据自己选择的邮箱提供商选用)
a) qq邮箱
i. 接收邮件服务器:pop.qq.com,使用SSL,端口号995
ii. 发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587
b) 163邮箱
i. 发送邮件服务器:smtp.163.com,使用SSL,端口号465
ii. 若安全类型选择“无”,则需将端口号修改为 25
c) 126邮箱
i. 发送邮件服务器:smtp.126.com,使用SSL,端口号465
ii. 若安全类型选择“无”,则需将端口号修改为 25
四、代码实现
#导入所用库函数
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
#服务商发送服务器地址
host = 'smtp.126.com'
#服务商发送服务器端口号
port = 465
#发件人邮箱账号
my_sender='xxx@xx.com'
#发件人邮箱密码
my_passwd = 'xxxxxxx'
#收件人邮箱账号
to_user='xxx@xx.com'
# 邮箱服务器地址和端口
smtp_s = smtplib.SMTP_SSL(host=host, port=port)
#登录邮箱
smtp_s.login(user=my_sender, password=my_passwd)
#发送信息内容定义
msg = MIMEText(content, _subtype=content_type, _charset="utf8")
#发件人,默认为邮箱名,可设置别名
msg["From"] = formataddr(('程序员唐丁',self.msg_from))
#发送对象邮箱
msg["To"] = to_user
#发送主题
msg["Subject"] = subject
#确认发送
smtp_s.send_message(msg, from_addr=my_sender, to_addrs=to_user)
更多教程欢迎关注微信公众号“程序员唐丁”
以上是关于Python十几行代码实现邮件自动发送的主要内容,如果未能解决你的问题,请参考以下文章
Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码
Python用20行代码实现完整邮件功能 [完整代码+建议收藏]