【发布时间】:2012-07-24 15:36:23
【问题描述】:
我正在开发一个应用程序,该应用程序会在特定时间间隔自动将电子邮件发送到有效电子邮件。通过互联网搜索,我发现大多数代码使用现有的电子邮件帐户(例如 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 支持电子邮件发送电子邮件有什么优势?还是不可能?
如果我错了,请纠正我,因为我对协议不太熟悉。
【问题讨论】:
-
(1) 您的应用程序是否接收电子邮件或从某个来源(例如 Exchange 或任何其他服务器)获取电子邮件,或者您只是拥有电子邮件地址? (2) 我不明白为什么你需要知道用户的 SMTP 服务器。如果您有他们的电子邮件地址,那么您只需向他们发送消息即可。 (3) 您的应用程序的目标是什么:向某人发送电子邮件或发送电子邮件作为您是那个人?
-
假设您是使用该应用程序的人。该应用程序需要在特定时间间隔自动向您自己的电子邮件地址发送电子邮件。最好的方法是什么?
-
让我再问你一个问题:这个应用程序会发给我的消息,发件人是谁?是自动不回复还是我自己?
-
自动不回复。这个应用程序应该在任何机器上执行此操作。
-
好吧,那么最好的选择是:为您的应用程序创建一个电子邮件帐户(它甚至可以是免费帐户,例如 GMail 或任何其他帐户)并从该帐户的服务器发送此消息。您不需要知道接收服务器,SMTP + DNS 将为您完成。您需要做的就是使用您的私人凭据(您的应用帐户)将消息发送到 SMTP 服务器。