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

其次,要注意防火墙,正常情况下,防火墙不允许关闭

这里需要防火墙开放端口

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值