Skip to content

Commit 652b29b

Browse files
Merge pull request #397 from sendgrid/issue-396-mail-helper-text-null
Issue #396 - Fix MailHelper null issue
2 parents cecc1ee + 8ff7ae6 commit 652b29b

File tree

2 files changed

+83
-6
lines changed

2 files changed

+83
-6
lines changed

src/SendGrid/Helpers/Mail/MailHelper.cs

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,16 @@ public static SendGridMessage CreateSingleEmail(
3131
var msg = new SendGridMessage();
3232
msg.SetFrom(from);
3333
msg.SetSubject(subject);
34-
msg.AddContent(MimeType.Text, plainTextContent);
35-
msg.AddContent(MimeType.Html, htmlContent);
34+
if (plainTextContent != null)
35+
{
36+
msg.AddContent(MimeType.Text, plainTextContent);
37+
}
38+
39+
if (htmlContent != null)
40+
{
41+
msg.AddContent(MimeType.Html, htmlContent);
42+
}
43+
3644
msg.AddTo(to);
3745
return msg;
3846
}
@@ -56,8 +64,16 @@ public static SendGridMessage CreateSingleEmailToMultipleRecipients(
5664
var msg = new SendGridMessage();
5765
msg.SetFrom(from);
5866
msg.SetGlobalSubject(subject);
59-
msg.AddContent(MimeType.Text, plainTextContent);
60-
msg.AddContent(MimeType.Html, htmlContent);
67+
if (plainTextContent != null)
68+
{
69+
msg.AddContent(MimeType.Text, plainTextContent);
70+
}
71+
72+
if (htmlContent != null)
73+
{
74+
msg.AddContent(MimeType.Html, htmlContent);
75+
}
76+
6177
for (var i = 0; i < tos.Count; i++)
6278
{
6379
msg.AddTo(tos[i], i);
@@ -86,8 +102,16 @@ public static SendGridMessage CreateMultipleEmailsToMultipleRecipients(
86102
{
87103
var msg = new SendGridMessage();
88104
msg.SetFrom(from);
89-
msg.AddContent(MimeType.Text, plainTextContent);
90-
msg.AddContent(MimeType.Html, htmlContent);
105+
if (plainTextContent != null)
106+
{
107+
msg.AddContent(MimeType.Text, plainTextContent);
108+
}
109+
110+
if (htmlContent != null)
111+
{
112+
msg.AddContent(MimeType.Html, htmlContent);
113+
}
114+
91115
for (var i = 0; i < tos.Count; i++)
92116
{
93117
msg.AddTo(tos[i], i);

tests/SendGrid.Tests/Integration.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,20 @@ public void TestCreateSingleEmail()
316316
"Plain Text Content",
317317
"HTML Content");
318318
Assert.True(msg.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject\"}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Plain Text Content\"},{\"type\":\"text/html\",\"value\":\"HTML Content\"}]}");
319+
320+
var msg2 = MailHelper.CreateSingleEmail(new EmailAddress("[email protected]", "Example User"),
321+
new EmailAddress("[email protected]"),
322+
"Test Subject",
323+
null,
324+
"HTML Content");
325+
Assert.True(msg2.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject\"}],\"content\":[{\"type\":\"text/html\",\"value\":\"HTML Content\"}]}");
326+
327+
var msg3 = MailHelper.CreateSingleEmail(new EmailAddress("[email protected]", "Example User"),
328+
new EmailAddress("[email protected]"),
329+
"Test Subject",
330+
"Plain Text Content",
331+
null);
332+
Assert.True(msg3.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject\"}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Plain Text Content\"}]}");
319333
}
320334

321335
[Fact]
@@ -332,6 +346,23 @@ public void TestCreateSingleEmailToMultipleRecipients()
332346
"HTML Content"
333347
);
334348
Assert.True(msg.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"subject\":\"Test Subject\",\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Plain Text Content\"},{\"type\":\"text/html\",\"value\":\"HTML Content\"}]}");
349+
350+
var msg2 = MailHelper.CreateSingleEmailToMultipleRecipients(new EmailAddress("[email protected]", "Example User"),
351+
emails,
352+
"Test Subject",
353+
null,
354+
"HTML Content"
355+
);
356+
Assert.True(msg2.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"subject\":\"Test Subject\",\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]}],\"content\":[{\"type\":\"text/html\",\"value\":\"HTML Content\"}]}");
357+
358+
var msg3 = MailHelper.CreateSingleEmailToMultipleRecipients(new EmailAddress("[email protected]", "Example User"),
359+
emails,
360+
"Test Subject",
361+
"Plain Text Content",
362+
null
363+
);
364+
Assert.True(msg3.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"subject\":\"Test Subject\",\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]},{\"to\":[{\"email\":\"[email protected]\"}]}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Plain Text Content\"}]}");
365+
335366
}
336367

337368
[Fact]
@@ -359,6 +390,28 @@ public void TestCreateMultipleEmailsToMultipleRecipients()
359390
substitutions
360391
);
361392
Assert.True(msg.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject1\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject2\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject3\",\"substitutions\":{\"-name-\":\"Name1\"}}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello -name-\"},{\"type\":\"text/html\",\"value\":\"Goodbye -name-\"}]}");
393+
394+
plainTextContent = null;
395+
htmlContent = "Goodbye -name-";
396+
var msg2 = MailHelper.CreateMultipleEmailsToMultipleRecipients(new EmailAddress("[email protected]", "Example User"),
397+
emails,
398+
subjects,
399+
plainTextContent,
400+
htmlContent,
401+
substitutions
402+
);
403+
Assert.True(msg2.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject1\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject2\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject3\",\"substitutions\":{\"-name-\":\"Name1\"}}],\"content\":[{\"type\":\"text/html\",\"value\":\"Goodbye -name-\"}]}");
404+
405+
plainTextContent = "Hello -name-";
406+
htmlContent = null;
407+
var msg3 = MailHelper.CreateMultipleEmailsToMultipleRecipients(new EmailAddress("[email protected]", "Example User"),
408+
emails,
409+
subjects,
410+
plainTextContent,
411+
htmlContent,
412+
substitutions
413+
);
414+
Assert.True(msg3.Serialize() == "{\"from\":{\"name\":\"Example User\",\"email\":\"[email protected]\"},\"personalizations\":[{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject1\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject2\",\"substitutions\":{\"-name-\":\"Name1\"}},{\"to\":[{\"email\":\"[email protected]\"}],\"subject\":\"Test Subject3\",\"substitutions\":{\"-name-\":\"Name1\"}}],\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello -name-\"}]}");
362415
}
363416

364417
[Fact]

0 commit comments

Comments
 (0)