簡単な質問ですが、MSDNのどこにも答えが見つかりません...
ASP.NETが使用するデフォルトを探す:
MailMessage.BodyEncoding
とMailMessage.SubjectEncoding
コードで設定しない場合は?
ありがとう
簡単な質問ですが、MSDNのどこにも答えが見つかりません...
ASP.NETが使用するデフォルトを探す:
MailMessage.BodyEncoding
とMailMessage.SubjectEncoding
コードで設定しない場合は?
ありがとう
MailMessage.BodyEncoding
MSDNの場合:
プロパティに指定された値
BodyEncoding
は、Content-Type ヘッダーの文字セット フィールドを設定します。デフォルトの文字セットは"us-ascii"
.
MailMessage.SubjectEncoding
文書化されたデフォルト値も見つけることができませんでしたが、リフレクターが救助します:
internal void set_Subject(string value)
{
if ((value != null) && MailBnfHelper.HasCROrLF(value))
{
throw new ArgumentException(SR.GetString("MailSubjectInvalidFormat"));
}
this.subject = value;
if (((this.subject != null) && (this.subjectEncoding == null)) &&
!MimeBasePart.IsAscii(this.subject, false))
{
this.subjectEncoding = Encoding.GetEncoding("utf-8");
}
}
MimeBasePart.IsAscii
ASCII
渡された値がエンコードされているかどうかを判断しようとする内部メソッドです。
internal static bool IsAscii(string value, bool permitCROrLF)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
foreach (char ch in value)
{
if (ch > '\x007f')
{
return false;
}
if (!permitCROrLF && ((ch == '\r') || (ch == '\n')))
{
return false;
}
}
return true;
}
したがって、件名のデフォルトのエンコーディングUTF-8
はほとんどの場合になるようです。