【问题标题】:How to retrieve/negotiate the supported Security Methods and Authentication Methods of a SMTP-Server如何检索/协商 SMTP 服务器支持的安全方法和身份验证方法
【发布时间】:2011-09-07 22:15:58
【问题描述】:

我正在使用 C# (.NET 4.0) 和 System.Net.Mail.SmtpClient 类将电子邮件发送到 SMTP 服务器。 现在我可以实际发送一封电子邮件到 SMTP 服务器,并立即在我的 Thunderbird 收件箱文件夹中看到它。

此测试未指定任何身份验证方法或安全方法。 但通常 SMTP-Server 需要某种身份验证,我假设。

我想知道,是否可以询问 SMTP 服务器,它支持哪些身份验证方法,然后协商使用所需的方法。 我正在考虑向 SMTP-Server 询问支持的身份验证方法并返回例如列表:

  • 无身份验证
  • 密码,明文
  • 密码,加密
  • Kerberos
  • NTLM

根据连接的安全方法:

  • 连接没有安全性
  • STARTTLS
  • SSL/TLS

有没有办法以编程方式从 SMTP 服务器检索支持的方法?

【问题讨论】:

    标签: c# smtp


    【解决方案1】:

    这是可能的,但不是通过 .NET 类;相反,您需要使用套接字级连接将适当的 EHLO 请求发送到服务器,然后解析响应。

    您需要的套接字编程的详细信息在这里:How to validate SMTP server

    您需要解析来自服务器的响应。 SMTP AUTH 上的维基百科条目有一个有用的示例对话框:http://en.wikipedia.org/wiki/SMTP_Authentication

    Wireshark (http://www.wireshark.org/) 等实用程序可以方便地调试此类工作。

    【讨论】:

    • 谢谢,这对我帮助很大。我能够通过提到的套接字级连接获得支持的方法。 :)
    猜你喜欢
    • 2021-06-16
    • 2014-11-25
    • 2017-04-09
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    相关资源
    最近更新 更多