发送给收件人,同时在发送列表中列出其他人

时间:2016-02-10 16:46:59

标签: c# email smtp mailkit

我想发送一封电子邮件给一个人,然后发送给""列表显示了一些人。 (我不希望其他人收到这封邮件)。

许多文章(herehere)表明为smtp地址和mime地址指定不同的值是完全合法的。

我使用的是MailKit,这是我到目前为止所做的:

var message = new MimeMessage();
message.From.Add(new MailboxAddress("MeetingOfficeA", "noreply@office.com"));
message.To.Add(new MailboxAddress("Fidel Perez-Smith", "fidel@office.com"));

message.Headers.Add("To", "john.doe@office.com"); //this line actually sends the email to John Doe, which I don't want

message.Subject = "Testing";
message.Body = new TextPart ("plain") { Text = @"Testing 123" };

MailKit.Net.Smtp.SmtpClient client = new MailKit.Net.Smtp.SmtpClient();
client.Connect("smtpserver.office.com");
client.Send(message);

我可以添加一些内容,只有Fidel收到电子邮件,但它看起来像是发送给多个人了吗?

(链接1中的问题类似,但主要是讨论来自地址。我认为我的问题不应该被标记为重复,因为它与地址相关联。并且会让其他用户更容易找到。毕竟,当我研究我的特定问题时,需要一段时间才能找到其他链接。)

1 个答案:

答案 0 :(得分:2)

以下代码片段将使看起来像消息被发送给Fidel Perez-Smith和John Doe,但实际上,它只会被发送给Fidel Perez-Smith:

var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("MeetingOfficeA", "noreply@office.com"));
message.To.Add (new MailboxAddress ("Fidel Perez-Smith", "fidel@office.com"));
message.To.Add (new MailboxAddress ("John Doe", "john.doe@office.com");
message.Subject = "Testing";
message.Body = new TextPart ("plain") { Text = @"Testing 123" };

using (var client = new SmtpClient ()) {
    client.Connect ("smtpserver.office.com");
    client.Send (message, new MailboxAddress ("MeetingOfficeA", "noreply@office.com"), new [] { new MailboxAddress ("Fidel Perez-Smith", "fidel@office.com") });
    client.Disconnect (true);
}