【发布时间】:2023-03-03 10:10:01
【问题描述】:
我需要使用 c# 向名为“DL-IT”的 Exchange 分发列表发送电子邮件。
有谁知道如何做到这一点?
【问题讨论】:
标签: c# email exchange-server
我需要使用 c# 向名为“DL-IT”的 Exchange 分发列表发送电子邮件。
有谁知道如何做到这一点?
【问题讨论】:
标签: c# email exchange-server
最简单的方法是找到 DL 的实际电子邮件地址,并在“收件人:”字段中使用该地址。 Exchange 通讯组列表实际上有自己的电子邮件地址,因此应该可以正常工作。
【讨论】:
Exchange 服务器运行 SMTP,因此可以使用 SmtpClient 发送电子邮件。
可以(手动)查找分发列表的 SMTP 地址,并将其用作MailMessage 构造函数的“收件人”地址。如果您只传入分发列表的名称,构造函数调用将失败,因为它看起来 不像 真实 电子邮件地址。
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 解决方案中的代码 sn-p - 您应该发送到 DL-IT@mycompany.com。
但交换名称别名并不总是与群组电子邮件相同,所以
DL-IT 在 To 字段中打开一封空电子邮件To字段中的DL-IT
Alias Name 字段复制值并添加@mycompany.com。【讨论】:
以上答案都很好,请注意,如果通讯组列表的成员之一不是有效地址,则 SMTP 服务器可能会拒绝整个电子邮件,因为无法投递。
这可能是因为在我们的例子中,我们使用的 SMTP 服务器不是 Exchange 的一部分,但无论如何都需要注意这一点。
【讨论】: