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

C# 如何使用c向Exchange通讯组列表发送电子邮件,c#,email,exchange-server,C#,Email,Exchange Server,我需要使用c向名为DL-IT的Exchange通讯组列表发送电子邮件 有人知道如何做到这一点吗?最简单的方法是找到DL的实际电子邮件地址,并在“收件人:”字段中使用该地址。Exchange通讯组列表实际上有自己的电子邮件地址,因此这应该可以正常工作。Exchange server运行SMTP,以便可以使用发送电子邮件 可以手动查找通讯组列表的SMTP地址,并将其用作构造函数上的收件人地址。如果您只是传入通讯组列表的名称,则构造函数调用将失败,因为它看起来不像真实的电子邮件地址 public vo

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


有人知道如何做到这一点吗?

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

Exchange server运行SMTP,以便可以使用发送电子邮件

可以手动查找通讯组列表的SMTP地址,并将其用作构造函数上的收件人地址。如果您只是传入通讯组列表的名称,则构造函数调用将失败,因为它看起来不像真实的电子邮件地址

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.

但exchange名称别名并不总是与组电子邮件相同,因此

您可以在Outlook中打开一封空电子邮件,并在“收件人”字段中键入DL-IT 双击DL-IT in To字段 从别名字段复制值并添加@mycompany.com。
以上答案很好,请注意,如果通讯组列表的成员之一不是有效地址,SMTP服务器可能会拒绝整个电子邮件,因为无法传递


这可能是因为在我们的例子中,我们使用的SMTP服务器不是Exchange的一部分,但无论如何都需要注意

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

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);
}
我让它工作的方式是在Outlook 2016中单击。。。按钮,然后在全局通讯簿中搜索ML。有两个条目,一个带有全球符号,一个带有人物符号


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

Exchange是否会对通过SMTP发送的DL名称执行类似的查找?我的印象是没有。如果我想从电子邮件按摩中删除通讯组列表的电子邮件地址,并将其发送给各个列表成员,该怎么办?我在这里的问题中有更多的细节:
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);
}