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