从网络上的计算机发送电子邮件 - .NET 4.0

时间:2011-07-20 03:23:23

标签: c#-4.0 .net-4.0 system.net.mail

我正在尝试创建一个小型桌面应用程序,向办公室内的人员(所有内部人员)发送电子邮件。我的应用程序将运行在也在网络上的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是本地机器。这会有用,还是有不同的方法来解决这个问题?

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

1 个答案:

答案 0 :(得分:1)

您必须在localhost上安装SMTP服务器才能发送邮件。

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

编辑: 即你需要

  1. 从客户端通过SMTP接受邮件并将其转发到目的地的某个服务器;和
  2. 一些接受邮件的服务器(通常通过SMTP)并将其存储在邮箱中,以便人们可以稍后通过POP3或IMAP或其他方式检索邮件。
  3. 您的公司邮件服务器通常应该同时执行这两项操作。


    EDIT2:

    您可以作弊并使用SMTPClient直接将邮件发送到接收方的邮箱服务器。

    尝试解析MX记录(请参阅How to get mx records for a dns name with System.Net.DNS?)并直接创建SMTPClient返回的最佳MX服务器。

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