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 对象。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值