2

.NET SmtpClient を使用して電子メールで送信された CSV 添付ファイルが、Lotus Note の添付ファイルではなく、電子メールの下部に表示されるという奇妙な問題が発生しています。私はそれを理解する方法がわからず、クライアントコンピューターにアクセスできないため、デバッグが非常に困難になります。実行できる可能性のある手順と、知っておく必要がある可能性のある落とし穴は何ですか?

コードは次のとおりです。

var smtpClient = new SmtpClient
{
   Host = ConfigurationManager.AppSettings["smtpServer"],
   Port = Convert.ToInt32(ConfigurationManager.AppSettings["smtpPort"])
};
var mailMessage = new MailMessage();
mailMessage.Attachments.Add(new Attachment(attachment, contentType)); 

//ContentType = "text/csv";
//attachment is the temp file disk path

ありがとう。

4

4 に答える 4

3

これは少し手が届きますが、添付ファイルのコンテンツの配置を設定することをお勧めします。

var mailMessage = new MailMessage();
Attachment data = new Attachment(attachment, contentType); 
ContentDisposition disposition = data.ContentDisposition;
disposition.FileName = "message.csv";
mailMessage.Attachments.Add(data);

適応元:http: //msdn.microsoft.com/en-us/library/system.net.mail.attachment.contentdisposition.aspx

于 2009-05-21T13:24:13.263 に答える
0

一部のメールクライアントには、添付ファイルをインラインで表示するオプションがあります。

最も明白なテストは、他のソースから.csvファイルの添付ファイルを送信し、問題が発生しているクライアントでの結果を確認することです。

于 2009-05-21T07:51:01.470 に答える
0

テストのために、 content-type を "application/octet-stream" などに設定してみてください。たとえば(頭のてっぺんから):

ContentType ct = new ContentType( "application/octet-stream" );
ct.Name = "message.csv";
data.ContentType = ct;
于 2009-05-22T12:20:38.637 に答える
0

コンテンツ タイプを設定せず、拡張子だけを設定してみてください。拡張子がある場合、Windows はそれを処理できるはずであり、インラインで表示するのではなく、添付ファイルとして処理するように強制する場合があります。

添付するファイルに拡張子があることを確認してください。

于 2009-05-21T12:53:28.457 に答える