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