0

您能否告诉我是否可以使用 C# 从任何电子邮件帐户向任何收件人发送电子邮件?我的意思是两者的 smtp 服务器是不同的。

我阅读了很多关于此的文章,尝试了不同的方法但没有效果。使用一种方法,我收到错误“邮箱不可用。服务器响应是:必须是本地收件人”。这意味着发件人和收件人应该来自同一个 smtp 服务器。

另一种方法来自codeproject。很多时候,电子邮件不会发送给某个收件人,有时会发送 4 次而不是 1 次。这对所有电子邮件地址都不可靠。

4

1 回答 1

2

在 C# 中,您可以从任何帐户发送到任何帐户,前提是 SMTP 服务器允许您将. 您无法连接到随机 SMTP 服务器并期望从该服务器将邮件发送到其他服务器上的地址。这样的事情被称为开放中继,并且是(或至少曾经是)大量垃圾邮件的来源。

通常,如果您想使用 SMTP 服务器发送邮件,您必须使用您的用户名和密码登录(验证)。这样,ISP 就不会在不知不觉中促成垃圾邮件问题。登录后,您可以告诉 SMTP 服务器将您的邮件转发给在另一台服务器上拥有帐户的人。

如果您想将邮件发送到 name@somewhere.com 并且您无法登录到将为您进行中继的 SMTP 服务器,那么您需要直接连接到为某个域提供服务的 SMTP 服务器。即使那样,它也可能不接受您的邮件,具体取决于它的设置方式。SMTP 服务器通常会进行反向查找,以查看您的 IP 地址是否与已知(由 DNS 系统)处理 yourname@yourdomain.com 的邮件的 SMTP 服务器的 IP 地址匹配。

C# 中的 SMTP 支持将允许您连接到服务器、登录和发送邮件。服务器是否允许您这样做完全是另一回事。

于 2013-02-19T19:50:59.620 回答