如何从电子邮件地址获取SMTP主机名?

时间:2012-07-26 05:09:39

标签: c# .net vb.net smtp

我正在开发一个应用程序,它会以特定的时间间隔自动发送电子邮件到有效的电子邮件。通过互联网搜索,我发现大多数代码使用现有的电子邮件帐户(如gmail.com)通过以SMTP客户端身份登录来发送电子邮件。但我的问题是我不会知道用户电子邮件的smtp服务器名称(因为用户通常不会知道这些东西,尽管他会知道登录/密码)。例如,

someone@gmail.com应该提供smtp.gmail.com和端口号(465)

someone@nextek.net应该提供mail.nextek.net和端口号(?)

someone@screaming.Net smtp.tiscali.co.uk和端口号(?)

我使用电子邮件地址的域名获取了MX记录,但我意识到它实际上提供了可用的传入SMTP服务器名称。

例如,如果我在命令提示符下使用nslookup ping,gmail.com会提供gmail-smtp-in.l.google.com以及其他四个服务器名称。

使用现有的SMTP支持电子邮件发送电子邮件的好处是什么,而不是直接通过dns查找电子邮件服务器名称来发送电子邮件?或者是不可能的?

如果我错了,请纠正我,因为我对协议不太熟悉。

1 个答案:

答案 0 :(得分:1)

如果您不熟悉协议,则尝试实施协议没有意义。

通常,像您这样的应用程序不需要担心SMTP协议的细节。您将为您的平台使用现有的SMTP客户端库(我确定您可以使用一个.NET),并连接到MTA(您的 MTA,而不是收件人),给它发送的电子邮件,你已经完成了。 MTA将负责确定如何将电子邮件发送给收件人的所有SMTP协议详细信息。

发送电子邮件非常类似于在角落的邮箱中丢弃一封信,并让邮局找出如何发送邮件。您不需要知道要放哪辆车,或者收件人当地邮局配送中心的位置,或者任何这些细节。

您可以选择使用Postfix之类的内容设置自己的MTA,也可以通过自己的Gmail帐户发送电子邮件(当然,在Gmail允许您这样做之前,您需要使用Gmail帐户和密码)。