Python发送邮件

一、启用邮箱的SMTP访问

Python发邮件需要有SMTP服务,可以在本地搭建SMTP服务,也可以使用第三方的SMTP服务(比如网易邮箱或QQ邮箱)。

这里我使用了网易126邮箱来发邮件。

1 登录网易邮箱

2 设置-->POP3/SMTP/IMAP-->设置POP3/SMTP/IMAP,勾选“POP3/SMTP服务”和“IMAP/SMTP服务”。

1.png

3 设置客户端授权密码,要求邮箱绑定手机,设置验证码之前需要先输入短信验证码

注意:网易授权密码,一天最多只能接收3次

2.png

3.png

用手机网易邮箱登录邮件账号时,所填的密码不是你的登录密码,而是上面这个授权密码。

同样地,用Python发邮件也是使用授权密码,而不是邮箱登录密码。

二、编写发邮件程序

(一)用到的模块

python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。

smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块主要负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

(二)消息对象

构造一个邮件对象就是一个Message对象,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片,要把多个对象组合起来,就用MIMEMultipart对象,而MIMEBase可以表示任何对象。它们的继承关系如下:

4.png

邮件发送程序为了防止有些邮件阅读软件不能显示处理HTML格式的数据,通常都会用两类型分别为"text/plain"和"text/html"

构造MIMEText对象时,第一个参数是邮件正文,第二个参数是MIME的subtype,最后一定要用utf-8编码保证多语言兼容性。比如:

(三)发送邮件的代码

运行结果:

5.png

6.png

注意,若收件箱里没有收到邮件,记得去垃圾箱里找。

(四)发送带附件的邮件代码

运行结果:

7.png

8.png

注意,若收件箱里没有收到邮件,记得去垃圾箱里找。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180615G0WH3Y00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券