c#生成的csv文件通过电子邮件发送到Lotus note中的电子邮件底部

时间:2009-05-21 06:11:15

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

我遇到这个问题,使用.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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

尝试不设置内容类型,只设置扩展名。 Windows应该能够处理它,如果它有一个扩展名,它可能会强制它作为附件处理它,而不是试图内联显示它。

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

答案 3 :(得分:0)

只是为了测试,尝试将内容类型设置为“application / octet-stream”。 例如(在我的头顶):

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