SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
Python 中的 smtplib 模块,对 smtp 进行了简单的封装,提供了一套发送邮件的 api
构造 SMTP
1 | import smtplib |
- host SMTP 服务器主机,ip 或域名
- port SMTP 端口号,一般为 25
- user 发送人邮箱名
- password 发送人密码
消息体
1 | from email.mime.text import MIMEText |
- msg 邮件正文,普通文本或 html 代码
- mime_type 消息类型,html 或 text
From
和To
不是必填字段,但是不填的话,发送人和接受人的位置就会显示空。
发送
1 | smtp.sendmail(sender, receivers, msg) |
- sender 发送人邮件
- receivers 接受人邮件,数组
- msg 消息体
Hello World
完成的邮件发送代码如下
1 | #!/usr/bin/env python |
抄送/密送
在 smtplib 中发送邮件没有普通和抄送之分,都是放在 receivers
中,只是在头信息中区分开
1 | cc = ['bb@bbb.com', 'cc@ccc.com'] |
附件
发送附件的时候需要引入新模块 MIMEMultipart
1 | from email.mime.multipart import MIMEMultipart |
HTML 文本中显示图片
使用 MIMEImage
模块可以接收图片格式数据,配合 MIMEMultipart
以附件的形式发送,并显示在文本中
1 | from email.mime.text import MIMEText |
图片以附件发送,并指定 cid
,在文本中引用该 id 即可
参考
