メール送信via SMTPクライアントまで、フルのC#BCCを使用しない
質問
私を利用しようと System.Net.Mail.MailMessage
クラスC#ソースコードをメールが送信されるリストのメールアドレスすべてによ BCC
.したいと思わないなどの TO
アドレス、そうでなければならないで例外を利用した場合、空の文字列の TO
アドレスを MailMessage
コンストラクタです。エラー状態:
ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses
確実にできるメールのみを使用 BCC
であることから、限定SMTP.
があるので、周辺か。
解決
emailMessage.To.Add(sendTo);
行全体をコメントアウトすると、 To
フィールドが空のメールが送信されます。
他のヒント
すべての人に常に返信させたくない内部メールブラストでも同じことを行います。
自分(またはダミーアカウント)に送信してから、BCCリストを追加します。
TOアドレスを含める必要があります。それを「ジャンク」に送るだけです。メールを受け取ることを気にしないメールアドレス。
実際の電子メールアドレスである必要はありません。通常、 TO
には Mailer@CompanyName.com
を使用し、 NoReply @ CompanyNameを使用します
。 FROM
の場合は
ToプロパティでAddメソッドを呼び出さないでください。
が必要である。そしてこのことは、なんらかの意味でのsendmailにおける実装は、80年代には、全てのSMTP mailersか、同一の要件を満たす。ご利用いただけダミーのアドレスです。
一時的な偽のアドレスを使用して、次の直後に削除できます:
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);
}
あなたは次のようなことをしようとしていたと思います:
var msg = new MailMessage("no-reply@notreal.com", "");
だからエラーメッセージが表示されていました。
代わりに、次のようなものを試してください:
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");