Question

J'essaie d'utiliser la classe System.Net.Mail.MailMessage en C # pour créer un courrier électronique qui est envoyé à une liste d'adresses électroniques, le tout via BCC . Je ne souhaite pas inclure d'adresse TO , mais il me semble que je dois le faire car j'obtiens une exception si j'utilise une chaîne vide pour l'adresse TO dans . MailMessage constructeur. L'erreur indique:

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

Il est sûrement possible d’envoyer un courrier électronique en utilisant uniquement Cci car il ne s’agit pas d’une limitation du protocole SMTP.

Y a-t-il un moyen de contourner cela?

Était-ce utile?

La solution

Je pense que si vous commentez l'intégralité de la ligne emailMessage.To.Add (sendTo); , le message contenant le champ To sera vide.

Autres conseils

Faites la même chose que pour les envois de courrier internes, où vous ne voulez pas que les gens répondent tout le temps.

Envoyez-le à vous-même (ou à un compte factice), puis ajoutez votre liste BCC.

Vous devez inclure une adresse TO. Envoyez-le simplement à un "courrier indésirable". adresse de messagerie qui ne vous dérange pas de recevoir du courrier.

Il n'est même pas nécessaire que ce soit une vraie adresse électronique. J'utilise généralement Mailer@Nomentreprise.com pour TO et NoReply @ CompanyName. pour FROM .

N'appelez pas la méthode Add sur la propriété To.

Doit avoir une adresse de destination. Il en a été ainsi depuis la version originale de sendmail dans les années 80 et tous les logiciels de courrier SMTP, à ma connaissance, ont les mêmes exigences. Vous pouvez simplement utiliser une adresse fictive pour.

Vous pouvez utiliser une fausse adresse temporaire, puis la supprimer juste aprè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);
}

Je pense que vous essayiez de faire quelque chose comme:

var msg = new MailMessage("no-reply@notreal.com", "");

C'est pourquoi vous voyez le message d'erreur.

Au lieu de cela, essayez quelque chose comme ceci:

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");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top