Я посмотрел на 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[]
в веб-приложении и мне нужно открыть сообщение почтового клиента, включая вложение, которое не хранится / скачать его на пользовательском клиенте?