diff options
author | Brandon West <brawest@gmail.com> | 2014-10-07 14:54:52 -0600 |
---|---|---|
committer | Brandon West <brawest@gmail.com> | 2014-10-07 14:54:52 -0600 |
commit | ca91fad22dfec2cd1219267fe979c1d9a33a522e (patch) | |
tree | 9c15fbba66ff518d71fa9235bfd6b665c644399d | |
parent | c8bbb307de6ab5d571797d2f210a0ec0f5531d3a (diff) | |
parent | 35c7bf635ab4b6fb9aeade60f4d4e60c2f2f929b (diff) | |
download | sendgrid-csharp-ca91fad22dfec2cd1219267fe979c1d9a33a522e.zip sendgrid-csharp-ca91fad22dfec2cd1219267fe979c1d9a33a522e.tar.gz sendgrid-csharp-ca91fad22dfec2cd1219267fe979c1d9a33a522e.tar.bz2 |
Merge pull request #80 from pianomanjh/feature/cc-bcc
add CC, Bcc support
-rw-r--r-- | SendGrid/SendGridMail/ISendGrid.cs | 2 | ||||
-rw-r--r-- | SendGrid/SendGridMail/SendGrid.cs | 50 | ||||
-rw-r--r-- | SendGrid/SendGridMail/Transport/Web.cs | 11 | ||||
-rw-r--r-- | SendGrid/Tests/Transport/TestWebApi.cs | 13 |
4 files changed, 73 insertions, 3 deletions
diff --git a/SendGrid/SendGridMail/ISendGrid.cs b/SendGrid/SendGridMail/ISendGrid.cs index 6c9d3fa..1d5ea8f 100644 --- a/SendGrid/SendGridMail/ISendGrid.cs +++ b/SendGrid/SendGridMail/ISendGrid.cs @@ -16,6 +16,8 @@ namespace SendGrid MailAddress From { get; set; }
MailAddress[] To { get; set; }
+ MailAddress[] Cc { get; set; }
+ MailAddress[] Bcc { get; set; }
MailAddress[] ReplyTo { get; set; }
Dictionary<String, MemoryStream> StreamedAttachments { get; set; }
String[] Attachments { get; set; }
diff --git a/SendGrid/SendGridMail/SendGrid.cs b/SendGrid/SendGridMail/SendGrid.cs index 667f94d..1533a46 100644 --- a/SendGrid/SendGridMail/SendGrid.cs +++ b/SendGrid/SendGridMail/SendGrid.cs @@ -107,6 +107,32 @@ namespace SendGrid }
}
+ public MailAddress[] Cc
+ {
+ get { return _message.CC.ToArray(); }
+ set
+ {
+ _message.CC.Clear();
+ foreach (var mailAddress in value)
+ {
+ _message.CC.Add(mailAddress);
+ }
+ }
+ }
+
+ public MailAddress[] Bcc
+ {
+ get { return _message.Bcc.ToArray(); }
+ set
+ {
+ _message.Bcc.Clear();
+ foreach (var mailAddress in value)
+ {
+ _message.Bcc.Add(mailAddress);
+ }
+ }
+ }
+
public String Subject
{
get { return _message.Subject; }
@@ -148,7 +174,29 @@ namespace SendGrid }
}
- public Dictionary<String, MemoryStream> StreamedAttachments
+ public void AddCc(string address)
+ {
+ var mailAddress = new MailAddress(address);
+ _message.CC.Add(mailAddress);
+ }
+
+ public void AddCc(MailAddress address)
+ {
+ _message.CC.Add(address);
+ }
+
+ public void AddBcc(string address)
+ {
+ var mailAddress = new MailAddress(address);
+ _message.Bcc.Add(mailAddress);
+ }
+
+ public void AddBcc(MailAddress address)
+ {
+ _message.Bcc.Add(address);
+ }
+
+ public Dictionary<String, MemoryStream> StreamedAttachments
{
get { return _streamedAttachments; }
set { _streamedAttachments = value; }
diff --git a/SendGrid/SendGridMail/Transport/Web.cs b/SendGrid/SendGridMail/Transport/Web.cs index 6a595c0..24202bf 100644 --- a/SendGrid/SendGridMail/Transport/Web.cs +++ b/SendGrid/SendGridMail/Transport/Web.cs @@ -191,6 +191,17 @@ namespace SendGrid .Concat(message.To.ToList().Select(a => new KeyValuePair<String, String>("toname[]", a.DisplayName)))
.ToList();
}
+
+ if (message.Cc != null)
+ {
+ result.AddRange(message.Cc.Select(c => new KeyValuePair<string, string>("cc[]", c.Address)));
+ }
+
+ if (message.Bcc != null)
+ {
+ result.AddRange(message.Bcc.Select(c => new KeyValuePair<string, string>("bcc[]", c.Address)));
+ }
+
if (message.GetEmbeddedImages().Count > 0) {
result = result.Concat(message.GetEmbeddedImages().ToList().Select(x => new KeyValuePair<String, String>(string.Format("content[{0}]", x.Key), x.Value)))
.ToList();
diff --git a/SendGrid/Tests/Transport/TestWebApi.cs b/SendGrid/Tests/Transport/TestWebApi.cs index 39aa992..6a4fa0c 100644 --- a/SendGrid/Tests/Transport/TestWebApi.cs +++ b/SendGrid/Tests/Transport/TestWebApi.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Net; -using System.Net.Mail; +using System.Net.Mail;
using Moq; using NUnit.Framework; using SendGrid; @@ -36,7 +36,11 @@ namespace Tests.Transport public void TestFetchFormParams() { // Test Variables - const string toAddress = "foobar@outlook.com"; + const string toAddress = "foobar@outlook.com";
+ const string ccAddress = "cc@outlook.com";
+ const string bcc1Address = "bcc1@outlook.com";
+ const string bcc2Address = "bcc2@outlook.com";
+ MailAddress[] bccAddresses = {new MailAddress(bcc1Address), new MailAddress(bcc2Address)}; const string fromAddress = "test@outlook.com"; const string subject = "Test Subject"; const string textBody = "Test Text Body"; @@ -47,6 +51,8 @@ namespace Tests.Transport var message = new SendGridMessage(); message.AddTo(toAddress); + message.AddCc(ccAddress);
+ message.Bcc = bccAddresses; message.From = new MailAddress(fromAddress); message.Subject = subject; message.Text = textBody; @@ -59,6 +65,9 @@ namespace Tests.Transport Assert.True(result.Any(r => r.Key == "api_user" && r.Value == TestUsername)); Assert.True(result.Any(r => r.Key == "api_key" && r.Value == TestPassword)); Assert.True(result.Any(r => r.Key == "to[]" && r.Value == toAddress)); + Assert.True(result.Any(r => r.Key == "cc[]" && r.Value == ccAddress)); + Assert.True(result.Any(r => r.Key == "bcc[]" && r.Value == bcc1Address));
+ Assert.True(result.Any(r => r.Key == "bcc[]" && r.Value == bcc2Address)); Assert.True(result.Any(r => r.Key == "from" && r.Value == fromAddress)); Assert.True(result.Any(r => r.Key == "subject" && r.Value == subject)); Assert.True(result.Any(r => r.Key == "text" && r.Value == textBody)); |