其他分享
首页 > 其他分享> > 16.2.1 连接到 SMTP 服务器

16.2.1 连接到 SMTP 服务器

作者:互联网

如果你曾设置了 Thunderbird、Outlook 或其他程序,连接到你的电子邮件账户,
你可能熟悉配置 SMTP 服务器和端口。这些设置因电子邮件提供商而不同,但在网上搜索“<你的提供商> SMTP 设置”,应该能找到相应的服务器和端口。
SMTP 服务器的域名通常是电子邮件提供商的域名,前面加上 SMTP。例如, Gmail 的 SMTP 服务器是 smtp.gmail.com。表 16-1 列出了一些常见的电子邮件提供商及其 
SMTP 服务器(端口是一个整数值,几乎总是 587,该端口由命令加密标准 TLS 使用)。

 

得到电子邮件提供商的域名和端口信息后,调用 smtplib.SMTP()创建一个 SMTP
对象,传入域名作为一个字符串参数,传入端口作为整数参数。SMTP 对象表示与 SMTP 邮件服务器的连接,它有一些发送电子邮件的方法。例如,下面的调用创建了一个 SMTP 对象,连接到Gmail:
>>>  smtpObj  =  smtplib.SMTP('smtp.gmail.com',  587)
>>>  type(smtpObj)
<class  'smtplib.SMTP'>
输入 type(smtpObj)表明,smtpObj 中保存了一个 SMTP 对象。你需要这个 SMTP对象,以便调用它的方法,登录并发送电子邮件。如果 smtplib.SMTP()调用不成功,你的 
SMTP  服务器可能不支持 TLS  端口 587。在这种情况下,你需要利用 smtplib.SMTP_SSL()和 465 端口,来创建SMTP 对象。
>>>  smtpObj  =  smtplib.SMTP_SSL('smtp.gmail.com',  465)

意       如果没有连接到因特网,Python 将抛出 socket.gaierror: [Errno 11004] getaddrinfo failed 或类似的异常。

对于你的程序,TLS 和 SSL 之间的区别并不重要。只需要知道你的 SMTP 服务器使用哪种加密标准,这样就知道如何连接它。在接下来的所有交互式环境示例中, smtpObj 
变量将包含smtplib.SMTP()或smtplib.SMTP_SSL()函数返回的SMTP 对象。
 

标签:端口,SMTP,16.2,smtpObj,服务器,smtplib,电子邮件
来源: https://blog.csdn.net/china365love/article/details/122266806