メール送信via SMTPクライアントまで、フルのC#BCCを使用しない

StackOverflow https://stackoverflow.com/questions/302271

  •  08-07-2019
  •  | 
  •  

質問

私を利用しようと 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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top