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

时间:2009-05-27 14:49:08

标签: c# email exchange-server

我需要使用c#发送一封名为“DL-IT”的Exchange通讯组列表。

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

5 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

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);
}

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分:0)

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

这可能是因为在我们的情况下,我们使用的是不属于Exchange的SMTP服务器,但从来没有人知道它。

答案 4 :(得分:0)

在我的情况下,它不起作用,因为我将电子邮件发送到了为此列表定义的多个别名之一。在我看来,用于显示的地址可能与真实地址不同。

我使用它的方法是在Outlook(2016)中单击“收件人...”按钮,然后在全局通讯簿中搜索ML。有两个条目,一个带有地球符号,一个带有人符号。

Updated RegEx Demo

右键单击带有地球的图标,然后选择“属性”。在这里您可以找到电子邮件地址。

相关问题