【问题标题】:c# generated csv file sent via email embedded to bottom of email in lotus notec#生成的通过电子邮件发送的csv文件嵌入到lotus note中的电子邮件底部
【发布时间】:2009-05-21 06:11:14
【问题描述】:

我遇到了一个奇怪的问题,即使用 .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

谢谢。

【问题讨论】:

    标签: c# .net email csv lotus-notes


    【解决方案1】:

    这有点牵强,但您可能需要设置附件的内容处置。

    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

    【讨论】:

      【解决方案2】:

      在某些邮件客户端中,可以选择内联显示附件。

      最明显的测试是从其他来源发送一个 .csv 文件附件,并查看有问题的客户端的结果。

      【讨论】:

      • 我刚刚使用 Outlook 向客户发送了一封测试电子邮件,附件正确显示。我正在拉我的头发。
      【解决方案3】:

      尽量不要设置内容类型,只设置扩展名。如果 Windows 有扩展名,它应该能够处理它,并且它可能会强制它将其作为附件处理,而不是尝试内联显示它。

      确保您附加的文件具有扩展名。

      【讨论】:

        【解决方案4】:

        只是为了测试,尝试将 content-type 设置为 "application/octet-stream" 之类的东西。 例如(在我脑海中):

        ContentType ct = new ContentType( "application/octet-stream" );
        ct.Name = "message.csv";
        data.ContentType = ct;
        

        【讨论】:

          猜你喜欢
          • 2011-03-21
          • 1970-01-01
          • 1970-01-01
          • 2013-10-10
          • 2022-01-13
          • 2016-03-10
          • 2011-04-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多