web-dev-qa-db-ja.com

MailAddressコンストラクターの複数のアドレス

このようなアドレスに複数を追加しようとしていました。

MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");

のようなエラーをスローします

An invalid character was found in the mail header: ';'
26
Vetrivel mp

MailAddressコンストラクターを使用して複数の領収書を指定することはできませんが、以下に示すようにMailMessageオブジェクトを使用できます。

MailMessagenotMailAddress)コンストラクタを使用:

var msg = new MailMessage("[email protected]", "[email protected], [email protected]");

別の方法は:

MailMessage mail = new MailMessage();
mail.To.Add("[email protected],[email protected],[email protected]");

別の方法は:

MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
38

実際、セミコロンは有効な区切り文字ではありません。残念ながら、MSDNはこれを文書化しておらず、自分でこれを見つける必要がありました。

さらにアドレスを追加する場合は、それらをカンマで区切ります。そしてスペースは表示名とメールアドレスを分割します。 "To"プロパティは次の形式を受け入れます。

等...

私はこのトピックについてさらに書きました (このブログ投稿で

20
Tschareck

セミコロン(;)の代わりにコンマ(、)を区切り文字として使用します

セミコロン文字( ";")で区切られた複数の電子メールアドレスがアドレスパラメータで渡された場合。 FormatException例外が発生します。

動作する例

MailAddressCollection.Add(String):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add("[email protected], [email protected]");
  ...
}

MailAddressCollection.Add(MailAddress):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp"));
  msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1"));
  ...
}
4
JohnB

なぜこれを実行したいのかという疑問があるかもしれません。何かのようなもの MailMessage.ToMailAddressCollectionであり、そのAddメソッドがオーバーロードされて、カンマで区切られた文字列で複数の電子メールアドレスを取得します( http://msdn.Microsoft.comを参照)。 /en-us/library/ms144695.aspx )。

MailAddressオブジェクトの通常の使用法は、それらを電子メールに追加することであり、複数のアドレスがある場合は、それらをTo、CCなどのフィールドの1つに追加する必要があると想定します。この場合、Addオーバーロードでうまくいきます。他に何かがある場合は、実行しようとしていることに対してより多くのコンテキストを提供する必要があります。

2
Chris

このテーマの別のバリエーション、FWIWを次に示します。

    SenderEmail = "[email protected]";
    RecipientEmail = "[email protected], [email protected], [email protected]";
    MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);

コンマに注意してください。詳細については、MSDN here を参照してください。

1
Guest

あずきっく

「メールアドレスのリストの要素を区切るためにカンマが使用されています。その結果、リストの引用符で囲まれていない表示名にカンマを使用しないでください。次のメールアドレスは許可されます」 http:// msdn.Microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

よろしく、Anarud

0
Anarud