Enviando e -mail via SMTP em C# usando o BCC sem
Pergunta
Estou tentando usar o System.Net.Mail.MailMessage
classe em C# para criar um email enviado para uma lista de endereços de email, tudo via BCC
. Eu não quero incluir um TO
endereço, mas parece que devo, porque tenho uma exceção se usar uma string vazia para o TO
endereço no MailMessage
construtor. O erro afirma:
ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses
Certamente é possível enviar um e -mail usando apenas BCC
Como isso não é uma limitação do SMTP.
Existe uma maneira de contornar isso?
Solução
Eu acho que se você comentar o todo emailMessage.To.Add(sendTo);
linha, ele enviará o e -mail com To
campo vazio.
Outras dicas
Faça a mesma coisa que você faz para explosões internas de correio, onde não deseja que as pessoas respondam o tempo todo.
Envie isto para você mesmo (ou uma conta fictícia) e adicione sua lista do BCC.
Você deve incluir um endereço para endereçar. Basta enviá -lo para um endereço de e -mail "lixo" que você não se importa em receber e -mails.
Nem precisa ser um endereço de e-mail real, normalmente uso Mailer@CompanyName.com
por TO
, e NoReply@CompanyName
por FROM
.
Só não chame o add-method na propriedade.
Deve ter um para o endereço. Tem sido assim desde que o Sendmail original é implementações nos anos 80 e todos os mala diretos do SMTP, eu conheço o mesmo requisito. Você pode apenas usar um endereço dummy para.
Você pode usar um endereço falso temporário e removê -lo logo após:
MailMessage msg = new MailMessage(from, "fake@example.com");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
msg.Bcc.Add(email);
}
Eu acho que você estava tentando fazer algo como:
var msg = new MailMessage("no-reply@notreal.com", "");
É por isso que você estava vendo a mensagem de erro.
Em vez disso, tente algo assim:
MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("no-reply@notreal.com");
//msg.To.Add("target@notreal.com"); <--not needed
msg.Bcc.Add("BCCtarget@notreal.com");