我们日常工作中都会遇到发送邮件和接收邮件,使用Python也可以发送接收邮件。当我们需要处理大量邮件时,使用Python处理邮件可以大大地节省时间,提高效率。
邮件协议
SMTP:Simple Mail Transfer Protocol的简称,即简单邮件传输协议,是发送邮件的协议。
POP3:Post Office Protocol 3的简称,即邮局协议的第三个版本,它是规定怎样将个人计算机连接到Internet上邮件服务器和下载电子邮件的协议。
IMAP:Internet Mail Access Protocol的简称,即交互式邮件存取协议,是收取邮件的协议。
邮件发送基本流程
注册一个邮箱,打开邮箱的SMTP授权并获取授权码,如下图所示:
2. 构造邮件内容,包括发送人、主题、抄送人、附件、正文等,如下所示:
3. 发送邮件
Python发送邮件
Python发送文本邮件
使用Python发送邮件的库有很多,我们使用Python内置的email库和smtplib库,首先导入这两个库。示例代码如下:
邮箱要开启SMTP并获取授权码,用授权码替换原来的邮箱登录密码,否则运行会报错:smtplib.SMTPAuthenticationError: (550, b'User has no permission')
代码运行结果:
进入163邮箱看看是否有邮件,如下图所示:
发送HTML格式邮件
和文本格式邮件大部分代码相同,有几个地方需要修改,代码如下图所示:
进入邮箱查看邮件,如下图所示:
发送带附件邮件
发送带附件的邮件也和发送文本邮件类似,不一样的地方是需要导入smtplib库的MIMEApplication类,使用这个类构造附件然后添加邮件中。代码如下图所示:
进入邮箱查看邮件,如下图所示:
Python接收邮件
Python接收邮件也有很多库,比较简单的是zmail库,它是一个第三方库,使用时候需要安装,使用这个库几行代码就能完成接收邮件。代码实例如下所示:
运行结果如下图所示:
保存附件的参数target_path为None时附件保存在当前脚本同级目录下,也可以设置附件保存路径;overwrite为True表示覆盖相同文件名附件。
想了解更多精彩内容,快来关注程序猿小董