Invio di posta tramite SMTP in C # utilizzando BCC senza TO
Domanda
Sto cercando di utilizzare la classe System.Net.Mail.MailMessage
in C # per creare un messaggio di posta elettronica che viene inviato a un elenco di indirizzi di posta elettronica tramite BCC
. Non voglio includere un indirizzo TO
, ma sembra che debba farlo perché ottengo un'eccezione se uso una stringa vuota per l'indirizzo TO
in Costruttore MailMessage
. L'errore indica:
ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses
Sicuramente è possibile inviare un'e-mail utilizzando solo BCC
poiché non si tratta di una limitazione di SMTP.
C'è un modo per aggirare questo?
Soluzione
Penso che se commenti l'intera riga emailMessage.To.Add (sendTo);
, invierà l'e-mail con il campo To
vuoto.
Altri suggerimenti
Fai la stessa cosa che fai per le esplosioni di posta interna in cui non vuoi che le persone rispondano sempre.
Invia a te stesso (o un account fittizio), quindi aggiungi il tuo elenco BCC.
Devi includere un indirizzo TO. Basta inviarlo a un " junk " indirizzo email a cui non ti dispiace ricevere posta.
Non è nemmeno necessario che sia un vero indirizzo e-mail, in genere utilizzo Mailer@CompanyName.com
per TO
e NoReply @ CompanyName
per FROM
.
Basta non chiamare il metodo Add sulla proprietà To.
Deve avere un indirizzo. È stato così dall'originale sendmail implementazioni negli anni '80 e tutti i mailer SMTP, lo so, hanno gli stessi requisiti. Puoi semplicemente usare un indirizzo fittizio per.
Puoi utilizzare un indirizzo falso temporaneo, quindi rimuoverlo subito dopo:
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);
}
Penso che stavi cercando di fare qualcosa del tipo:
var msg = new MailMessage("no-reply@notreal.com", "");
Ecco perché stavi visualizzando il messaggio di errore.
Invece, prova qualcosa del genere:
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");