我有一个 excel 文件(Excel 2003 / xls 格式),我想用 c# 通过电子邮件发送它。
我的代码成功发送它,但是当我尝试打开响应文件时,它似乎编码错误。
例如,这里是响应文件名:
=_utf-8_B_RWxzesOhbW9sw6FzXzIwMTJfMTBfMTZf.dat
这是响应文件本身:
=?utf-8?B?VEdWdmJIWmhjMkZ1Wk1Pelh6UXlYekZmPz0NCiA9P3V0Zi04P0I/VGtW?=\
\ =?utf-8?B?TlgwZFRXaTU0YkhNPT89?=" 内容传输编码:base64
内容处置:附件
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAAAAAAAA
啊啊啊啊啊啊啊啊啊啊啊啊啊啊+////啊啊啊啊啊啊啊啊///////////////////////
/////////////////////////////////////////////////////////// ///////////////////////////
///////////////////////////////....
这是我的代码片段:
...
var attachment = new Attachment(WriteFileToMemory("fileFullPath"), "fileName.xls");
attachment.ContentType = new ContentType("application/vnd.ms-excel");
attachmentCollection.Add(attachment);
...
private Stream WriteFileToMemory(string filePath)
{
var memoryStream = new MemoryStream();
_openedStreams.Add(memoryStream);
using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
var bytes = new byte[file.Length];
file.Read(bytes, 0, (int) file.Length);
memoryStream.Write(bytes, 0, (int) file.Length);
file.Close();
}
memoryStream.Position = 0;
return memoryStream;
}
如何设置附件编码类型以及 Excel 文件应使用哪种编码?
请帮我解决这个问题。
提前致谢。
正如@Magnus 指出的那样,你让它变得太复杂了,new Attachment()
可以处理FileStream
所以只需将一个新的文件流传递给构造函数即可。
...
var attachment = new Attachment(File.Open("fileFullPath", FileMode.Open), "fileName.xls");
attachment.ContentType = new ContentType("application/vnd.ms-excel");
attachmentCollection.Add(attachment);
...
不过,请注意,kind 是偏离主题的,您不能多次发送这样的邮件,因为流并不总是会正确地自行重置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)