python使用smtp发送邮件碰到的小问题
正常情况下,使用smtp发送邮件时创建的smtp对象是包含SSL的,如下:
# 登录并发送
try:
# 需要SSL认证
smtpObj = smtplib.SMTP_SSL(self.mail_host)
smtpObj.login(self.mail_user, self.mail_pass)
smtpObj.sendmail(self.sender, receivers.email.split(','), self.message.as_string())
print('success')
smtpObj.quit()except smtplib.SMTPException as e:
print('error', e)
但是在特定服务器上,例如客户机上。
上述代码会报出10060的错误,即由于连接方在一段时间后没有正常答复,或者连接主机没有反应,连接尝试失败。
# 登录并发送
try:
# 需要SSL认证
smtpObj = smtplib.SMTP(self.mail_host)
smtpObj.login(self.mail_user, self.mail_pass)
smtpObj.sendmail(self.sender, receivers.email.split(','), self.message.as_string())
print('success')
smtpObj.quit()except smtplib.SMTPException as e:
print('error', e)
这里要注意,SMTP_SSL和SMTP有区别的,端口不一致,一个是465,一个是25
其次,要注意防火墙,正常情况下,防火墙不允许关闭
这里需要防火墙开放端口
【python使用smtp发送邮件碰到的小问题】
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- iOS中的Block