0

我正在开发一个应用程序,该应用程序会在特定时间间隔自动向有效电子邮件发送电子邮件。通过互联网搜索,我发现大多数代码使用现有的电子邮件帐户(例如 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 以及其他四个服务器名称。

另外,与通过 dns 查找电子邮件服务器名称直接发送相比,使用现有的 SMTP 支持电子邮件发送电子邮件有什么优势?还是不可能?

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

4

1 回答 1

1

如果您不熟悉协议,那么尝试实现该协议是没有意义的。

通常,像您这样的应用程序不需要担心 SMTP 协议的细节。您将为您的平台使用现有的 SMTP 客户端库(我确信您可以使用一个用于 .NET 的客户端库),并连接到 MTA(您的MTA,而不是收件人的),给它发送电子邮件,然后您'重做。MTA 将处理所有 SMTP 协议细节,以确定如何将电子邮件发送给收件人。

发送电子邮件非常类似于将一封信放在角落的邮箱中,然后让邮局弄清楚如何投递。您不需要知道将它放在哪辆车上,或者收件人的当地邮局配送中心在哪里,或者任何这些细节。

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

于 2012-08-01T22:06:28.553 回答