如何检索/协商 SMTP 服务器支持的安全方法和身份验证方法
我正在使用 C# (.NET 4.0) 和 System.Net.Mail.SmtpClient 类将电子邮件发送到 SMTP 服务器。 现在我能够实际发送一封电子邮件到 SMTP 服务器并立即在我的 Thunderbird 收件箱文件夹中看到它。
该测试未指定任何身份验证方法或安全方法。 但我认为 SMTP 服务器通常需要某种身份验证。
我想知道是否可以询问 SMTP 服务器它支持哪些身份验证方法,然后协商使用所需的方法。 我正在考虑向 SMTP 服务器询问支持的身份验证方法并获取以下列表:
- 无身份验证
- 密码、纯文本
- 密码、加密的
- Kerberos
- NTLM
相应的连接安全方法:
- 连接上没有安全性
- STARTTLS
- SSL/TLS
有没有办法以编程方式从 SMTP 服务器检索支持的方法?
I am using C# (.NET 4.0) and the System.Net.Mail.SmtpClient Class in order to send an EMail to a SMTP-Server.
For now i'm able to actual send an EMail to the SMTP-Server and see it immediatly in my Inbox-Folder of Thunderbird.
This Test was without specifiying any Authentication Methods nor Security Methods.
But usually SMTP-Server requires some kind of Authentication, i assume.
I wonder, whether it is possible to ask the SMTP-Server, what Authentication Methods it supports and afterwards negotiate to use the desired one.
I'm thinking of something like asking the SMTP-Server about the supported Authentication Methods and get back a list of e.g.:
- No Authentication
- Password, plaintext
- Password, crypted
- Kerberos
- NTLM
Accordingly for the Security Methode of the Connection:
- No Security on the Connection
- STARTTLS
- SSL/TLS
Is there a Way to programmatically retrieve the supported Methods from a SMTP-Server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是可能的,但不是通过 .NET 类;相反,您需要使用套接字级连接将适当的 EHLO 请求发送到服务器,然后解析响应。
有关您需要的套接字编程的详细信息,请参见:如何验证 SMTP 服务器
想要解析来自服务器的响应。关于 SMTP AUTH 的 Wikipedia 条目有一个有用的示例对话框: http://en.wikipedia.org/wiki/ SMTP_Authentication
实用程序,例如 Wireshark (http://www.wireshark.org/) 可以方便地调试此类工作。
It is possible, but not through the .NET class; rather, you'll need to use a socket-level connection to send the appropriate EHLO request to the server and then parse the response.
Details on the socket programming you'll need are here: How to validate SMTP server
You'll want to parse the response from the server. The Wikipedia entry on SMTP AUTH has a useful sample dialog: http://en.wikipedia.org/wiki/SMTP_Authentication
Utilities like Wireshark (http://www.wireshark.org/) can be handy debugging this kind of work.