我在c#中有一个发送电子邮件的方法。工作正常,已经工作了两年。
我遇到了一个SMTP服务器的问题。我使用SmartSniff查看了TCP会话,发现了一个有问题的握手:
命令后
AUTH登录dGJp
我收到错误说
501参数或参数中的语法错误
另一方面,当我使用同一帐户从outlook发送邮件时,上述命令分为两部分:
AUTH LOGIN
334 VXNlcm5hbWU6
dGJp
如您所见,从outlook发送时,客户端在发送用户名和服务器响应之前暂停,询问“用户名:”(VXNlcm5hbWU6) 该行之后没有错误发生。然后,服务器要求输入密码,并使用 235身份验证成功
进行回复有没有人遇到过这个问题?
我尝试使用不同的邮件服务器,在一行上进行身份验证时,一切正常(第一个示例)。由于某种原因,这个SMTP服务器不喜欢它。
有什么想法吗?
答案 0 :(得分:1)
它并没有真正帮助你,但AUTH LOGIN已被弃用,非标准方法,它没有正式的规范。有一个信息性RFC试图将其记录为历史目的和Microsoft规范。这些相互矛盾。 .Net似乎是以Microsoft的方式实现它,而你遇到的服务器实现了它。 (顺便使用哪种服务器软件?)如果可能,请使用标准的AUTH PLAIN方法。