@T("Change the way your site works and looks with themes and modules. There’s plenty to choose from in the Orchard Gallery. We’re always adding things, so be sure to check back often to see what’s new.",
+
@T("Change the way your site works and looks with themes and modules. There’s plenty to choose from in the Orchard Gallery. We’re always adding things, so be sure to check back often to see what’s new.",
Url.Action("Themes", "Gallery", new { area = "Orchard.Packaging" }),
Url.Action("Modules", "Gallery", new { area = "Orchard.Packaging" }))
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Activities/EmailActivity.cs b/src/Orchard.Web/Modules/Orchard.Email/Activities/EmailActivity.cs
index 88f4debef..2e5c7b69f 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Activities/EmailActivity.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Activities/EmailActivity.cs
@@ -55,12 +55,16 @@ namespace Orchard.Email.Activities {
var subject = activityContext.GetState("Subject");
var recipients = activityContext.GetState("Recipients");
var replyTo = activityContext.GetState("ReplyTo");
+ var bcc = activityContext.GetState("Bcc");
+ var cc = activityContext.GetState("CC");
var parameters = new Dictionary {
{"Subject", subject},
{"Body", body},
{"Recipients", recipients},
- {"ReplyTo", replyTo}
+ {"ReplyTo", replyTo},
+ {"Bcc", bcc},
+ {"CC", cc}
};
var queued = activityContext.GetState("Queued");
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Controllers/EmailAdminController.cs b/src/Orchard.Web/Modules/Orchard.Email/Controllers/EmailAdminController.cs
index e8f3dad57..bd915ae5e 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Controllers/EmailAdminController.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Controllers/EmailAdminController.cs
@@ -18,7 +18,7 @@ namespace Orchard.Email.Controllers {
public Localizer T { get; set; }
- public ActionResult TestMailSettings(string to, string subject, string body) {
+ public ActionResult TestMailSettings(string to, string subject, string body, string replyTo, string bcc, string cc) {
ILogger logger = null;
try {
var fakeLogger = new FakeLogger();
@@ -30,7 +30,10 @@ namespace Orchard.Email.Controllers {
_smtpChannel.Process(new Dictionary {
{"Recipients", to},
{"Subject", subject},
- {"Body", body}
+ {"Body", body},
+ {"ReplyTo",replyTo},
+ {"Bcc", bcc},
+ {"CC",cc}
});
if (!string.IsNullOrEmpty(fakeLogger.Message)) {
return Json(new { error = fakeLogger.Message });
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Forms/EmailForm.cs b/src/Orchard.Web/Modules/Orchard.Email/Forms/EmailForm.cs
index 50ca56b77..f1a438fd5 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Forms/EmailForm.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Forms/EmailForm.cs
@@ -36,12 +36,24 @@ namespace Orchard.Email.Forms {
Title: T("Email Addresses"),
Description: T("Specify a comma-separated list of recipient email addresses. To include a display name, use the following format: John Doe <john.doe@outlook.com>"),
Classes: new[] {"large", "text", "tokenized"}),
+ _Bcc: New.TextBox(
+ Id: "bcc",
+ Name: "Bcc",
+ Title: T("Bcc"),
+ Description: T("Specify a comma-separated list of email addresses for a blind carbon copy"),
+ Classes: new[]{"large","text","tokenized"}),
+ _CC: New.TextBox(
+ Id: "cc",
+ Name: "CC",
+ Title: T("CC"),
+ Description: T("Specify a comma-separated list of email addresses for a carbon copy"),
+ Classes: new[] { "large", "text", "tokenized" }),
_ReplyTo: New.Textbox(
Id: "reply-to",
Name: "ReplyTo",
Title: T("Reply To Address"),
Description: T("If necessary, specify an email address for replies."),
- Classes: new [] {"medium", "text", "tokenized"}),
+ Classes: new [] {"large", "text", "tokenized"}),
_Subject: New.Textbox(
Id: "Subject", Name: "Subject",
Title: T("Subject"),
@@ -93,6 +105,7 @@ namespace Orchard.Email.Forms {
var recipients = context.ValueProvider.GetValue("Recipients").AttemptedValue;
var subject = context.ValueProvider.GetValue("Subject").AttemptedValue;
var body = context.ValueProvider.GetValue("Body").AttemptedValue;
+
if (String.IsNullOrWhiteSpace(recipients)) {
context.ModelState.AddModelError("Recipients", T("You must specify at least one recipient.").Text);
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Models/EmailMessage.cs b/src/Orchard.Web/Modules/Orchard.Email/Models/EmailMessage.cs
index 63b09a78b..401045236 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Models/EmailMessage.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Models/EmailMessage.cs
@@ -4,5 +4,7 @@
public string Body { get; set; }
public string Recipients { get; set; }
public string ReplyTo { get; set; }
+ public string Bcc { get; set; }
+ public string CC { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Services/SmtpMessageChannel.cs b/src/Orchard.Web/Modules/Orchard.Email/Services/SmtpMessageChannel.cs
index 267e7f749..9fe4f9fdd 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Services/SmtpMessageChannel.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Services/SmtpMessageChannel.cs
@@ -45,10 +45,12 @@ namespace Orchard.Email.Services {
}
var emailMessage = new EmailMessage {
- Body = parameters["Body"] as string,
- Subject = parameters["Subject"] as string,
- Recipients = parameters["Recipients"] as string,
- ReplyTo = parameters.ContainsKey("ReplyTo") ? parameters["ReplyTo"] as string : null
+ Body = Read(parameters, "Body"),
+ Subject = Read(parameters, "Subject"),
+ Recipients = Read(parameters, "Recipients"),
+ ReplyTo = Read(parameters, "ReplyTo"),
+ Bcc = Read(parameters, "Bcc"),
+ CC = Read(parameters, "CC")
};
if (emailMessage.Recipients.Length == 0) {
@@ -113,5 +115,9 @@ namespace Orchard.Email.Services {
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
return smtpClient;
}
+
+ private string Read(IDictionary dictionary, string key) {
+ return dictionary.ContainsKey(key) ? dictionary[key] as string : null;
+ }
}
}
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Views/EditorTemplates/Parts/SmtpSettings.cshtml b/src/Orchard.Web/Modules/Orchard.Email/Views/EditorTemplates/Parts/SmtpSettings.cshtml
index 84ba3d1be..55194836c 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Views/EditorTemplates/Parts/SmtpSettings.cshtml
+++ b/src/Orchard.Web/Modules/Orchard.Email/Views/EditorTemplates/Parts/SmtpSettings.cshtml
@@ -56,10 +56,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -76,12 +88,19 @@
info = $("#emailtestinfo"),
to = $("#emailtestto"),
subject = $("#emailtestsubject"),
- body = $("#emailtestbody");
+ body = $("#emailtestbody"),
+ replyto = $("#emailtestreplyto"),
+ bcc = $("#emailtestbcc"),
+ cc = $("#emailtestcc");
+
$("#emailtestsend").click(function() {
$.post(url, {
to: to.val(),
subject: subject.val(),
body: body.val(),
+ replyto: replyto.val(),
+ bcc: bcc.val(),
+ cc: cc.val(),
__RequestVerificationToken: to.closest("form").find("input[name=__RequestVerificationToken]").val()
})
.fail(function(data) {