1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

时间:2019-05-15 03:26:41

相关推荐

Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

概述

Python发送邮件主要用到smtplibemail两个模块,其中smtplib负责发送邮件,email负责构建邮件内容。

使用Python可以发送简单文本邮件、HTML格式的文件、带附件的邮件等。

这里使用163邮箱的smtp服务器从163邮箱发送简单文本邮件到其它邮箱为例,详情见代码。

这是博客园中的一篇文章,总结的很全

首先需要拥有一个163邮箱账号,需要注意的是,需要在163邮箱的设置中开启客户端授权,申请授权码。

否则,直接使用密码登录会报错smtplib.SMTPAuthenticationError: (550, b‘User has no permission‘)

授权码是用于登录第三方邮件客户端的专用密码。这个过程需要手机号验证。

如下图,在设置--->POP3/SMTP/IMAP界面中,勾选SMTP服务,会提示进行手机验证,设置授权码(字母+数字),

然后在Python代码中进行登录时,使用刚才设置的授权码登录,而不是163邮箱密码。

源码

# !/usr/bin/env python# -*- coding:utf-8 -*-import smtplibfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr,formataddr# 163邮箱服务器地址smtp_server=''# 发件人邮箱地址from_addr='135****2212@'# 发件人邮箱密码(使用申请的客户端授权码代替)passwd='授权码'# 收件人邮箱地址to_addr='80*****23@'# 构建邮件内容(参数:邮件内容; 类型-plain,html; 编码)msg=MIMEText('SMTP测试邮件','plain','utf-8')# 设置邮件主题msg['Subject']=Header('这是邮件主题',charset='utf-8')def send_email():# 获取SMTP对象server=smtplib.SMTP(host=smtp_server,port=25)# 登录163邮箱服务器server.login(user=from_addr,password=passwd)# 发送邮件server.sendmail(from_addr=from_addr,to_addrs=to_addr,msg=msg.as_string())# 退出邮箱服务器server.quit()if __name__ == '__main__':send_email()

运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。