Откройте почтовый клиент из браузера с вложенным байтом [] с сервера - PullRequest
0 голосов
/ 29 января 2020

Я посмотрел на SO и нашел несколько способов сделать что-то похожее, но это не решение проблемы.

Пользователь находится на веб-странице и нажимает на файл (который хранится в byte [] на сервере) должен открыть почтовый клиент, в котором установлены вложение, тема и mailfrom.

Subject и Mail From - это не проблема, но вложение. Вот некоторые моменты, которые мне нужны / не нужны:

  • Я не могу / мне не разрешено создавать на клиенте файл, такой как mymailmessage.eml (доступ запрещен)
  • I не могу использовать MailMessage (System.Net.Mail), потому что для этого мне нужно создать файл для открытия почтового клиента с Process.Start(filename)
  • Я не могу использовать mailto:, потому что там я не могу добавить вложение

Таким образом, сейчас я использую MAPI. К сожалению, я не нашел решения. Мой источник - это байт [], и я могу написать это в MemoryStream. Можно ли создать вид virtual file path в C#? Но я не знаю, как открыть почтовый клиент, включая параметры. Все проекты MAPI (например, https://github.com/PandaWood/Simple-MAPI.NET или https://www.codeproject.com/Articles/10881/MAPIEx-Extended-MAPI-Wrapper используют локальные файлы. Я пробовал их, но в моем случае почтовый клиент не запускается, поэтому нет почтового сообщения всплывающее окно.

Итак, что я ищу: создайте MapiMessage с MailFrom, Subject, вложением, а затем откройте почтовый клиент (как с mailto), включая вложение.

Другой проект C# это: https://www.codeproject.com/Articles/17561/Programmatically-adding-attachments-to-emails-in-C

В соответствии с этим проектом кода, я не могу найти строку, где программа говорит, что почтовый клиент, пожалуйста, откройте (например, Process.Start() ) и откройте для меня подготовленное почтовое сообщение.

Есть ли другой способ, кроме MAPI, когда у меня есть только byte[] в веб-приложении и мне нужно открыть сообщение почтового клиента, включая вложение, которое не хранится / скачать его на пользовательском клиенте?

...