如何使用c#将电子邮件发送到Exchange通讯组列表

我需要使用c#向名为“DL-IT”的Exchange通讯组列表发送电子邮件。

有谁知道如何实现这一目标?

最简单的方法是找到DL的实际电子邮件地址,并在“收件人:”字段中使用它。 Exchange分发列表实际上有自己的电子邮件地址,因此这应该可以正常工作。

Exchange服务器运行SMTP,因此可以使用SmtpClient发送电子邮件。

可以查找通讯组列表的SMTP地址(手动),并将其用作MailMessage构造函数上的“to”地址。 如果您只是传递分发列表的名称,构造函数调用将失败,因为它看起来不像真正的电子邮件地址。

public void Send(string server, string from, string to) { // Client to Exchange server SmtpClient client = new SmtpClient(server); // Message MailMessage message = new MailMessage(from, to); message.Body = "This is a test e-mail message sent by an application. "; message.Subject = "test message 1"; // Credentials are necessary if the server requires the client // to authenticate before it will send e-mail on the client's behalf. client.Credentials = CredentialCache.DefaultNetworkCredentials; // Send client.Send(message); } 

基本上你需要结合上面的两个解决方案。

使用Scott解决方案的代码片段 – 您应该发送到DL-IT@mycompany.com

但是交换名称别名并不总是与组电子邮件相同,所以

  • 您可以在Outlook中使用DL-IT在“ To字段中打开一个空电子邮件
  • 双击“ To字段中的DL-IT
  • Alias Name字段复制值并添加@mycompany.com

上述答案很好,请注意,如果通讯组列表中的某个成员不是有效地址,则SMTP服务器可能会拒绝整个电子邮件消息无法送达。

这可能是因为在我们的情况下,我们使用的是不属于Exchange的SMTP服务器,但从来没有人能够意识到这一点。