Отправка почты через SMTP на C# с использованием BCC без TO

Я пытаюсь использовать класс System.Net.Mail.MailMessage в C# для создания электронного письма, которое отправляется на список адресов электронной почты через BCC. Я не хочу включать адрес TO, но кажется, что должен, потому что получаю исключение, если использую пустую строку для адреса TO в конструкторе MailMessage. В сообщении об ошибке говорится:

ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses

Конечно, можно отправить электронное письмо, используя только BCC, поскольку это не ограничение SMTP.

Это можно обойти?

Я пожалуюсь на это М.С. Но в нынешней ситуации это не поможет.

Tim 19.11.2008 19:12

Жалобы всегда помогают. Это вызывает теплое чувство ненависти.

bzlm 17.03.2009 10:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
2
13 808
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Вы должны указать адрес TO. Просто отправьте его на «нежелательный» адрес электронной почты, на который вы не против получать почту.

Я не думаю, что вам нужно указывать адрес получателя.

Tommy Carlier 25.06.2009 23:34

Сделайте то же самое, что и для рассылки внутренней почты, когда вы не хотите, чтобы люди все время отвечали всем.

Отправьте его к самостоятельно (или фиктивную учетную запись), затем добавьте свой список BCC.

Это даже не обязательно должен быть реальный адрес электронной почты, я обычно использую [email protected] для TO и NoReply@CompanyName для FROM.

Ответ принят как подходящий

Я думаю, если вы закомментируете всю строку emailMessage.To.Add(sendTo);, он отправит электронное письмо с пустым полем To.

Только не вызывайте метод Add для свойства To.

Придется заняться. Так было с тех пор, как исходный sendmail был реализован в 80-х годах, и все почтовые программы SMTP, о которых я знаю, предъявляли те же требования. Вы можете просто использовать фиктивный адрес для.

Вы можете использовать временный поддельный адрес, а затем удалить его сразу после:

MailMessage msg = new MailMessage(from, "[email protected]");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
     msg.Bcc.Add(email);
}

Я думаю, вы пытались сделать что-то вроде:

var msg = new MailMessage("[email protected]", "");

Вот почему вы видели сообщение об ошибке.

Вместо этого попробуйте что-нибудь вроде этого:

MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("[email protected]");
//msg.To.Add("[email protected]"); <--not needed
msg.Bcc.Add("[email protected]");

Другие вопросы по теме