Я получаю электронные письма через hmailserver
и отправляю их в виде файла .eml в качестве вложения к другому электронному письму с отчетом.
У меня проблемы с чтением и отправкой этих писем в виде вложения.
Вот что я делаю.
public void addAttachment(string pathname, bool retry)
{
string attachmentname = "";
do
{
try
{
attachmentname = Path.GetFileNameWithoutExtension(pathname);
Stream file = new MemoryStream(File.ReadAllBytes(pathname));
Log.WriteMessage("Size" + file.Length);
dtstreamAttach.Add(attachmentname+".eml", file);
retry = false;
}
catch (ArgumentException e)
{
string strCurrentTs = DateTime.Now.ToString(strDateFormat);
attachmentname = attachmentname + "-" + strCurrentTs+".eml";
}
} while (retry);
}
Потом,
MailMessage message = new MailMessage();
.
.
message.Attachments.Add(new Attachment(kvp.Value, kvp.Key)); // I have an attachment dictionary
string contenttype = GetMimeType(".eml");
ContentType cnttype = new ContentType(contenttype);
message.Attachments[0].ContentType = cnttype;
как вы видите, я печатаю размер потока, который распечатывается как что-то вроде 4790 байт (4 КБ). Но когда я получаю электронное письмо, я получаю только файл eml с размер 1 КБ, а файл eml пуст.
Я проверил пути к файлам, а также убедился, что электронное письмо находится там, пока не будет отправлено мое сообщение с отчетом. Я также подтвердил, что тип контента - message/rfc822
.
Кажется, все наладилось. Не уверен, в чем проблема.