У меня есть файл excel (формат Excel 2003/xls), и я хочу отправить его по электронной почте с помощью C#. Мой код отправляет его успешно, но когда я пытаюсь открыть файл ответов, он, похоже, ошибочно закодирован.Как отправить файл Excel по электронной почте?
Для примера здесь является ответом файла:
= _utf-8_B_RWxzesOhbW9sw6FzXzIwMTJfMTBfMTZf.dat
А вот сам файл ответов:
= UTF-8? B? VEdWdmJIWmhjMkZ1Wk1Pelh6UXlYekZmPz0NCiA9P3V0Zi04P0I/VGtW? = \ \ =? Utf-8? B? TlgwZFRXaTU0YkhNPT89? = "Content-Transfer-Encoding: base64 Conten т-Disposition: вложение
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAA AQAAAAAAAAAAEAAAIwAAAAEAAAD + //// AAAAAAAAAAD ///////////////////// ///////// ////////////////////////////////////////////////// ///// //////////////////////////////
Это мой код фрагмент:
...
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?
Пожалуйста, помогите мне решить эту проблему. Спасибо заранее.
Почему бы вам не сделать: 'new Attachment (новый FileStream (« путь », FileMode.Open, FileAccess.Read),« fileName.xls »)'? – Magnus
Да, ты прав. Теперь я использую ваше решение для загрузки файла, но проблема все та же. Он может отправлять почту, но кодировка файла excel неверна. – ZYD