0

我正在尝试创建一个小型桌面应用程序,用于向办公室中的人(所有内部人员)发送电子邮件。我的应用程序将在同样在网络上的 PC 上运行,并且用户将运行 Outlook 来处理他自己的电子邮件。

我正在查看几个需要 SmtpClient 并且它需要等于主机的示例。有没有办法可以将它设置为使用本地机器?

                MailMessage mailObj = new MailMessage("admin@network.com",
                reader["recipientAddress"].ToString(), "Subject", "Body");
                SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
                SMTPServer.Send(mailObj);

我读到 127.0.0.1 是本地机器。这会起作用吗,还是有不同的方法来解决这个问题?

如果它向外部电子邮件发送消息,我的消息也会消失吗?

4

1 回答 1

1

您必须在本地主机上安装 SMTP 服务器才能发送邮件。

Outlook 仅通过 POP3 或 IMAP 等接收电子邮件。

编辑:即你需要

  1. 某些服务器通过 SMTP 从您的客户端接收邮件并将其转发到其目的地;和
  2. 一些接受邮件(通常通过 SMTP)并将其存储在邮箱中的服务器,因此人们可以稍后通过 POP3 或 IMAP 或任何方式检索它们。

您公司的邮件服务器通常应该两者兼而有之。


编辑2:

不过,您也许可以作弊并SMTPClient直接将邮件传递到收件人的邮箱服务器。

尝试解析 MX 记录(请参阅如何使用 System.Net.DNS 获取 dns 名称的 mx 记录?)并直接创建一个SMTPClient返回的最佳 MX 服务器。

如果 Microsoft 实施了足够多的 SMTP 规范并且您的主机不被视为发送垃圾邮件,那么邮件应该会通过。

于 2011-07-20T03:26:57.133 回答