0

To アドレスをMailMessageインスタンスに追加する次のコード行があります。(文字列内の X は、顧客の識別を防ぐためのアルファベット文字のプレースホルダーを表します。)

message.To.Add("Xxxxxxxxx Xxxxxx Xxxxxxxxxx, Xxx. <xxxxxx@xxxxxxxxx-xx.com>");

そして、次のエラーが表示されます。

指定された文字列は、電子メール アドレスに必要な形式ではありません

messageタイプSystem.Net.Mail.MailMessageです。私の理解では、この形式が受け入れられました。実際、このコードは他のアドレスでも機能しています。名前のコンマまたはピリオドがフォーマットを壊している可能性はありますか?

編集

これまでのところ、正しい形式で電子メールアドレスを作成するために持っているものは次のとおりです。

// Construct a compound email address string
public static string BuildEmailAddress(string name, string emailAddress)
{
    if (String.IsNullOrWhiteSpace(name))
        return emailAddress;
    name = Regex.Replace(name, @"[()<>\[\]:;@\\,.""]",
        m => string.Format(@"\{0}", m.Value));
    return String.Format("\"{0}\" <{1}>", name, emailAddress);
}

この要素はまだ不明です。たとえば、Yahoo がコンマに遭遇した場合、名前を二重引用符で囲むだけで、バックスラッシュは気にしません。引用符が必要な場合とバックスラッシュが必要な場合を誰かが言うことができれば、私はどんな提案も歓迎します.

4

1 に答える 1

2

コンマは技術的には RFC 822/2822 のリスト区切り記号であるため、許可されていないと思います。少なくとも、私はそう読んだ。

于 2012-05-21T22:36:03.380 に答える