Могу ли я использовать встроенные функции Orchard для отправки электронного письма с приложениями из кода?

Я унаследовал проект, который был построен на Orchard 1.6 и обновлен до 1.9. Это сильно зависит от IMessageManager, который сейчас не рекомендуется, для отправки электронных писем пользователям:

public void SendEmail(List<string> recipients, string subject, string body)
{
    var data = new Dictionary<string, string>();

    data.Add("Subject", subject);
    data.Add("Body", body);

    _messageManager.Send(recipients, "Event_Notification", "email", data);
}

Теперь мне нужно добавить динамически сгенерированные файловые вложения (из MemoryStream) на некоторые из этих писем. Мне, вероятно, придется полностью переписать это, так как я не вижу способа передать вложения в MessageManager но я не уверен, что использовать в качестве альтернативы.

Orchard.Email.Services.SmtpMessageChannel уже, кажется, делает всю тяжелую работу, и это создает System.Net.Mail.MailMessage который может занять AttachmentCollection но void Process(IDictionary<string, object> parameters) метод до сих пор нет.

Должен ли я расширить это, чтобы сделать то, что я хочу? Если так, то как? Или уже есть более простой способ сказать Orchard, чтобы он отправил получателю электронное письмо с заголовком, телом и коллекцией вложений?

0 ответов

Другие вопросы по тегам