使用SMTP协议发送邮件(Python语言)

    /_src/python/smtp/send_email.py

    函数通过参数指定了发送一封邮件所需要的全部要素,依次是:邮件服务器地址、端口、登录用户、登录密码、发送人邮箱(一般与登录用户相同)、收件人邮箱,邮件标题,邮件内容。

    函数第 21 行先初始化一个连接对象。注意到,类连接类通过 参数化,灵活支持不同连接类,如 smtp.SMTPsmtp.SMTP_SSL 等。

    24 行用指定的地址端口连接邮件服务器。紧接着,第 25 行用指定的用户密码进行登录。至此,程序编写已经成功了一半。

    28 - 40 行组装消息体,消息体包括:发件人,收件人,邮件标题,发送时间,邮件内容等要素。消息体的格式如下:

    1. From: xxxx@qq.com
    2. Subject: hello world

    43 行将消息体发送到邮件服务器。这样,一封邮件就成功发送出去了,是不是很简单?

    在调用 send_email 函数发送邮件前,需要获得邮件服务器的登录信息。登录信息包括四要素,分别是:服务器地址,端口,登录用户以及登录密码。

    很不幸,不同的邮件厂商,做法颇有不同。下面以 为例,介绍如何获得登录信息:

    登录 QQ邮箱 ,点击 设置 > 账号 ,找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 ,按提示开启 SMTP 并取得授权码。

    授权码

    点击 如何使用 Foxmail 等软件收发邮件? ,指引里可以找到 SMTP 服务器地址以及端口信息:

    至此,四要素集齐:服务器地址一般为 smtp.qq.com ,端口一般为 465 ,登录用户就邮箱地址,密码就是授权码。

    警告

    注意,SMTP服务器登录密码是生成的授权码,不是邮箱登录密码!

    小手动起来,使用 Python 发出你的第一封邮件吧!

    订阅更新,获取更多学习资料,请关注我们的 :

    ../_images/wechat-mp-qrcode.png小菜学编程