- Added attachments logic

This commit is contained in:
HermesSbicego-Laser 2016-10-21 11:46:08 +02:00
parent 59a9f0bf03
commit 2bb81eef31
2 changed files with 20 additions and 8 deletions

View File

@ -1,4 +1,6 @@
namespace Orchard.Email.Models {
using System.Collections.Generic;
namespace Orchard.Email.Models {
public class EmailMessage {
public string Subject { get; set; }
public string Body { get; set; }
@ -7,5 +9,9 @@
public string From { get; set; }
public string Bcc { get; set; }
public string Cc { get; set; }
/// <summary>
/// IEnumerable of strings representing attachments paths
/// </summary>
public IEnumerable<string> Attachments { get; set; }
}
}

View File

@ -9,6 +9,8 @@ using Orchard.ContentManagement;
using Orchard.DisplayManagement;
using Orchard.Logging;
using Orchard.Email.Models;
using System.Linq;
using System.IO;
namespace Orchard.Email.Services {
public class SmtpMessageChannel : Component, ISmtpChannel, IDisposable {
@ -51,7 +53,8 @@ namespace Orchard.Email.Services {
ReplyTo = Read(parameters, "ReplyTo"),
From = Read(parameters, "From"),
Bcc = Read(parameters, "Bcc"),
Cc = Read(parameters, "CC")
Cc = Read(parameters, "CC"),
Attachments = (IEnumerable<string>)parameters["Attachments"]
};
if (emailMessage.Recipients.Length == 0) {
@ -105,8 +108,7 @@ namespace Orchard.Email.Services {
if (!String.IsNullOrWhiteSpace(emailMessage.From)) {
mailMessage.From = new MailAddress(emailMessage.From);
}
else {
} else {
// Take 'From' address from site settings or web.config.
mailMessage.From = !String.IsNullOrWhiteSpace(_smtpSettings.Address)
? new MailAddress(_smtpSettings.Address)
@ -119,9 +121,13 @@ namespace Orchard.Email.Services {
}
}
foreach (var attachmentPath in emailMessage.Attachments) {
if (File.Exists(attachmentPath)) {
mailMessage.Attachments.Add(new Attachment(attachmentPath));
}
}
_smtpClientField.Value.Send(mailMessage);
}
catch (Exception e) {
} catch (Exception e) {
Logger.Error(e, "Could not send email");
}
}
@ -129,7 +135,7 @@ namespace Orchard.Email.Services {
private SmtpClient CreateSmtpClient() {
// If no properties are set in the dashboard, use the web.config value.
if (String.IsNullOrWhiteSpace(_smtpSettings.Host)) {
return new SmtpClient();
return new SmtpClient();
}
var smtpClient = new SmtpClient {
@ -155,7 +161,7 @@ namespace Orchard.Email.Services {
}
private IEnumerable<string> ParseRecipients(string recipients) {
return recipients.Split(new[] {',', ';'}, StringSplitOptions.RemoveEmptyEntries);
return recipients.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);
}
}
}