Amar P Sutar Ответов: 1

Я пытаюсь записать содержимое двоичного файла в формат eml


Я хочу создать файл EML с использованием двоичных данных, которые включали мои данные электронной почты, а также у меня есть добавить MIMEType is application/vnd.ms-outlook и расширение is .eml

Что я уже пробовал:

filename = Regex.Replace(filename, @"[,~#'%&*:<>?/\{|}\n]", "");
            Attachments objAttachment = new Attachments();
            MemoryStream stream = (new Attachments()).GetAttachment(iAttachmentID);
            /*Amar test this*/
              //string  Updateddata =HttpContext.Current.Session["FirstName"].ToString();
              //byte[] byteArray = Encoding.ASCII.GetBytes(Updateddata);
           /*amar  this*/
            byte[] byteArray = stream.ToArray();
            Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
            Response.Buffer = true;
            Response.ContentType = "application/vnd.ms-outlook";
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.BinaryWrite(byteArray);
            Response.End();

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Вы не можете взять байты и кодировать их в ASCII. Вы должны закодировать байты в строку Base64 и включить ее в качестве вложения в результирующий файл EML.


Amar P Sutar

спасибо за ваш рэп,но, пожалуйста, не могли бы вы объяснить мне ?

Amar P Sutar

не работать

Dave Kreskowiak

Да, это абсолютно ничего не говорит мне о том, как выглядит ваш код, что вы делаете с этими "двоичными данными" и как выглядит результирующий файл EML.

Amar P Sutar

смотрите недавно я генерирую pdf файл с использованием двоичных данных которые сохраняются в БД
и теперь у меня есть требование, чтобы создать EML-файл, используя что бинарные данные, которые я использую, чтобы генерировать PDF-файл таким образом,они могут скачать их и открыть его в Outlook, и я использую тот же код, что я использую для загрузки .формат PDF filebut не работает, и да, я также использовать различными MIME(.формат EML) написать файл EML

Dave Kreskowiak

Итак, вы включаете PDF-файл в качестве вложения. Почему это так трудно объяснить?

Во - первых, приведенный выше код не возвращает файл EML. Он возвращает поток байтов с типом MIME "application/vnd.ms-outlook". Все это говорит о том, что "байты, которые я отправляю обратно, являются файлом Outlook", но на самом деле вы отправляете файл PDF. Outlook не может разобрать этот поток байтов в электронную почту, потому что это не то, что есть.

EML-файлы-это текстовое описание электронной почты в формате RFC822 и все расширения, включая RFC2045, 2046, 2047, 2048 и 2049. Описание RFC822 можно найти здесь здесь[^].

Amar P Sutar

Спасибо за ваш повтор,ваше право,я извлекаю байт для файла .eml, так что не могли бы вы сказать мне, что я должен сохранить в базе данных, а затем, как получить их любые предложения..?

Dave Kreskowiak

Вы сказали, что эта часть уже работает. Это ввод данных в электронную почту, с которой у вас возникли проблемы.

Так что же это такое?

Amar P Sutar

его отображение пустых данных