我想发送一封电子邮件给一个人,然后发送给""列表显示了一些人。 (我不希望其他人收到这封邮件)。
许多文章(here和here)表明为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中的问题类似,但主要是讨论来自地址。我认为我的问题不应该被标记为重复,因为它与地址相关联。并且会让其他用户更容易找到。毕竟,当我研究我的特定问题时,需要一段时间才能找到其他链接。)
答案 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);
}