1

System.Net.Mail.SmtpClientでメールを送信しています。

MailMessage aMailMessage = new MailMessage();
aMailMessage.To.Add(aUser.Email);
aMailMessage.Subject = "aaa";
aMailMessage.Body = "bbb";

SmtpClient aSmtpClient = new SmtpClient();
aSmtpClient.Send(aMailMessage);

電子メールはテキストメールとして受信されますが(件名は「aaa」、本文は「bbb」です)、このメールに加えて、ファイル名「aaa」とコンテンツ「bbb」のテキストファイルが添付されます。

このテキストファイルが添付されているのはなぜですか。どうすれば回避できますか?

助けてくれてありがとう!

アップデート

この質問は無視してください。これは、テストメールを受信するために使用したメールクライアントの一時的な問題であると思われます。メールクライアントを再起動すると、問題は解消されました。

4

1 に答える 1

2

SMTPメッセージに添付ファイルを挿入する方法は、メッセージの代替バージョンがある場合と同じです。主要部分のメッセージヘッダーは「マルチパート」を意味するMIMEタイプを持ち、区切り文字が定義されています。次に、この区切り文字で区切られたいくつかのサブメッセージが含まれます。各サブメッセージは、本文または添付ファイルの形式を定義するMIME部分でタグ付けされます。たとえば、Wordファイルは「application / ms-word」のようなタグが付けられ、プレーンテキスト部分はtext/plainまたはHTMLがtext/htmlとしてタグ付けされます。

SmtpClientの実装(Reflectorのおかげで見ました)では、添付ファイルがなく、代替バージョンがない場合、HTMLサブメッセージが自動的に作成されます。したがって、Outlook 2000のような古いクライアントは、この代替ビューの概念をサポートしていないと思うので、添付ファイルがあると考えます(したがって、MIMEタイプtext / htmlは添付ファイルです)。

奇妙なのは、それが以前には起こらなかった(またはあなたが気づかなかった)ということです。以前のメッセージには、明示的に設定した添付ファイルまたは代替ビューが含まれていた可能性があります。

于 2010-03-10T20:32:55.980 に答える