31

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

MailAddress mailAddressTo = new MailAddress("sample@google.com;sample1@google.com","Vetrivelmp");

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

An invalid character was found in the mail header: ';'
4

7 に答える 7

46

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

MailMessageではない MailAddress)コンストラクターの使用:

var msg = new MailMessage("from@domain.com", "to1@gmail.com, to2@gmail.com");

別の方法は次のとおりです。

MailMessage mail = new MailMessage();
mail.To.Add("me@mycompany.com,him@hiscompany.com,her@hercompany.com");

別の方法は次のとおりです。

MailMessage msg = new MailMessage();
msg.To.Add("person1@domain.com");
msg.To.Add("person2@domain.com");
msg.To.Add("person3@domain.com");
msg.To.Add("person4@domain.com");
于 2012-03-16T11:09:37.080 に答える
21

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

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

  • 「email@server.com」
  • "email1 @ server1.com、email2 @ server2.com"
  • 「名前email@server.com」
  • 「名前email@server1.com、email @server2.com」

等...

このトピックについては、このブログ投稿で詳しく説明しました

于 2012-03-22T09:35:32.957 に答える
6

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

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

動作する例

MailAddressCollection.Add(String):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add("sample@google.com, sample1@google.com");
  ...
}

MailAddressCollection.Add(MailAddress):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add(new MailAddress("sample@google.com", "Vetrivelmp"));
  msg.To.Add(new MailAddress("sample1@google.com", "Vetrivelmp1"));
  ...
}
于 2013-11-23T00:22:54.977 に答える
2

なぜあなたがこれをしたいのかという疑問があるかもしれませんか?のようなものMailMessage.Toは、コンマで区切られた文字列内の複数の電子メールアドレスを取得するためにメソッドがオーバーロードされているものです(MailAddressCollectionhttp://msdn.microsoft.com/en-us/library/ms144695.aspxを参照)。Add

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

于 2012-03-16T11:13:15.523 に答える
1

このテーマの別のバリエーション、FWIWは次のとおりです。

    SenderEmail = "me@mine.com";
    RecipientEmail = "this@this.com, that@that.com, other@theother.com";
    MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);

カンマに注意してください。詳細については、MSDNのこちらをご覧ください。

于 2013-12-23T18:34:50.550 に答える
0

@Tschareck

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

よろしく、アナルド

于 2013-06-20T09:17:25.033 に答える
-2

これは私のために働いたものです。

  MailMessage m_message = new MailMessage();
  string m_addys = "addy2@foo.com,addy1@foo.com";
  m_message.To.Add(m_addys);
于 2013-12-04T18:48:49.270 に答える