为什么imap和smtp需要单独的身份验证?

时间:2018-07-20 05:44:34

标签: python email smtp imap

我正在使用python的imaplib和smtplib库 但是我必须分别登录到imap和smtp服务器,如下所示:

imap:

self.imap = imaplib.IMAP4_SSL(self.imap_server,self.imap_port)
r, d = self.imap.login(self.username, self.password)

smtp:

self.smtp = smtplib.SMTP(self.smtp_server, self.smtp_port)
self.smtp.ehlo()
self.smtp.starttls()
self.smtp.login(self.username, self.password)

有什么方法可以同时登录两者?

1 个答案:

答案 0 :(得分:0)

这里的根本原因是IMAP协议和SMTP协议都没有提供一种方式来表示“您可以在此处使用与(某些其他服务)相同的凭据”或类似的方式。这样的协议功能是可能的,也许可以作为SASL功能,但这不是一个简单的扩展。

这不是在青铜时代,因为SMTP仅在垃圾邮件发送者和移动设备出现时才开始使用密码。在此之前,IMAP使用密码,但SMTP通常不使用密码。

所以我们剩下的人都假设两者相同,很多客户端仅支持这种情况,但是客户端库的工作方式就像IMAP和SMTP是不同的世界一样。