2015-11-09 40 views
0

我试图在使用Python我的smtplib公司的电子邮件服务器连接支持下面是我的代码片段:的Python登录的smtplib错误smtplib.SMTPException:STARTTLS扩展服务器不

server = smtplib.SMTP('mail.mycompany.com',25) 
server.ehlo()   
server.starttls() 
server.login('[email protected]', 'my_password') 

当我运行我的代码得到以下错误:

smtplib.SMTPException:服务器不支持STARTTLS扩展名。

在谷歌搜索这个错误后,我发现我公司的SMTP服务器不支持STARTTLS认证,所以我必须从我的代码删除server.starttls()这条线,但是当我删除此行我收到以下错误:

smtplib.SMTPException:服务器不支持SMTP AUTH扩展。

我花了一整天的时间来搜索这些错误,但没有找到任何解决方案。请帮忙。

+0

如果有什么你之前和之后做EHLO TLS? – user193661

+0

如果您使用smtplib.SMTPS怎么办?端口465.你确定你有正确的端口? – user193661

+0

我之前和之后都使用了ehlo,但仍然收到同样的错误_smtplib.SMTPException:服务器不支持STARTTLS扩展名 是的设置是由我们的电子邮件管理员提供的,所以端口也正确也尝试使用其他端口进行连接( 465,587),并让他们超时。 –

回答

2

也许,您不需要登录到服务器。我无需连接到公司的SMTP服务器。所以,你可以尝试这样的:

server = smtplib.SMTP('mail.mycompany.com',25) 
server.ehlo()   
server.sendmail('[email protected]', '[email protected]', msg) 
+0

你刚刚从创建一个冗余的SO问题救了我,+1! 我不知道提问者,但你的解决方案为我工作,我我也在公司服务器上工作,smtp.login()是问题,你的答案解决了它。 –

+0

也为我工作。谢谢:) –

0

我能够与修改下面的代码行来解决这个问题,通过增加端口号与服务器名称:

server = smtplib.SMTP('mail.mycompany.com:587')  
server.starttls() 
server.login('[email protected]', 'my_password')