System.Net.Mail名前空間を使用して任意のYahooアカウントに添付ファイル付きの電子メールを送信すると、添付ファイルはファイル名ではなく「無題」の名前でダウンロードされます。ファイル名のない添付ファイル
Yahoo Mailインターフェイスでは、添付ファイルが正しい名前で表示されますが、ダウンロードするとダウンロード名はすべての添付ファイルの「無題」になります。同じ電子メールメッセージは、Gmail、Outlook.com、Windows Live Mailなどのクライアントでうまく動作します。
生のメッセージを見ると、それはファイル名属性を持たない名前のcontent-typeを保持します。ファイル名属性が設定されていてもC#ライブラリでこれを使用しないと、Yahooはうまく動作します。
添付ファイル用のC#によって生成されたヘッダです:
Content-Type: application/octet-stream; name=test.pdf
ヤフーと連携ヘッダーです:
Content-Type: application/octet-stream; name=file2; filename=test.pdf
誰もがこれまでのところ、この問題を取得しますか? C#のデフォルトのメール送信のための作業arroundはありますか?
using (var message = new MailMessage("[email protected]", "[email protected]", "Test with attachment", "Test with attachment"))
{
var attachment = new Attachment(@"c:\temp\test.pdf"); // Same result using stream instead path to file.
attachment.Name = "test.pdf"; // Same result without this line.
message.Attachments.Add(attachment);
using (var smtp = new SmtpClient("smtp.domain", 587))
{
smtp.Credentials = new NetworkCredential("[email protected]", "password");
smtp.Send(message);
}
}
添付ファイルの名前プロパティを設定しましたか?私たちにあなたのコードを教えてもらえますか? – HaukurHaf
はい、ストリームとして送信し、ファイルのパスを渡す、ファイル名を設定しようとしました。私はそれを明確にするためのコードを入れます。 –