使用SMTP协议发送邮件(Python语言)
/_src/python/smtp/send_email.py
函数通过参数指定了发送一封邮件所需要的全部要素,依次是:邮件服务器地址、端口、登录用户、登录密码、发送人邮箱(一般与登录用户相同)、收件人邮箱,邮件标题,邮件内容。
函数第 21 行先初始化一个连接对象。注意到,类连接类通过 参数化,灵活支持不同连接类,如 smtp.SMTP
、 smtp.SMTP_SSL
等。
第 24 行用指定的地址端口连接邮件服务器。紧接着,第 25 行用指定的用户密码进行登录。至此,程序编写已经成功了一半。
第 28 - 40 行组装消息体,消息体包括:发件人,收件人,邮件标题,发送时间,邮件内容等要素。消息体的格式如下:
From: xxxx@qq.com
Subject: hello world
第 43 行将消息体发送到邮件服务器。这样,一封邮件就成功发送出去了,是不是很简单?
在调用 send_email
函数发送邮件前,需要获得邮件服务器的登录信息。登录信息包括四要素,分别是:服务器地址,端口,登录用户以及登录密码。
很不幸,不同的邮件厂商,做法颇有不同。下面以 为例,介绍如何获得登录信息:
登录 QQ邮箱 ,点击 设置 > 账号 ,找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 ,按提示开启 SMTP 并取得授权码。
授权码
点击 如何使用 Foxmail 等软件收发邮件? ,指引里可以找到 SMTP 服务器地址以及端口信息:
至此,四要素集齐:服务器地址一般为 smtp.qq.com
,端口一般为 465
,登录用户就邮箱地址,密码就是授权码。
警告
注意,SMTP服务器登录密码是生成的授权码,不是邮箱登录密码!
小手动起来,使用 Python 发出你的第一封邮件吧!
订阅更新,获取更多学习资料,请关注我们的 :