Реализация списка рассылки в .NET - PullRequest
4 голосов
/ 22 марта 2012

Я реализую список рассылки, используя .NET.Как обсуждалось в этом ответе , мне нужно отправить электронное письмо, в котором получатель конверта отличается от получателя в заголовке «Кому».Как этого добиться в C #?Классы SmtpClient и MailMessage в System.Net.Mail, похоже, не позволяют этого.

Я пытался:

        message.To.Add("list@example.com");
        message.Headers["Envelope-to"] = "user@example.com";

, но почта не отправляется в соответствии с указаннымв конверте-до.

Есть предложения?

1 Ответ

3 голосов
/ 22 марта 2012

Добавление адреса к Envelope-To без добавления его к To

Вы можете использовать свойство MailMessage.Bcc .Добавленные адреса будут появляться только в Envelope-To, а не в To:

message.Bcc.Add("user@example.com");

Добавление адреса в To без добавления в Envelope-To

Здесь я совершенно уверен, что вам не повезло.Я посмотрел на пространство имен System.Net.Mail с ILSpy, и похоже, что это невозможно.Заголовок To письма создается из свойства To MailMessage (см. Message.PrepareHeaders), и то же свойство используется для заполнения Envelope-To письма (вместе с Cc иBcc свойств, см. SmtpClient.Send).Установка Headers["To"] вручную не поможет, поскольку это значение перезаписывается содержимым свойства To (см. Message.PrepareHeaders).

Итак, list@example.com будет получитькопия сообщения.В зависимости от конфигурации вашего SMTP-сервера это может привести к зацикливанию почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...