Skip to content

Commit b5c09a9

Browse files
authored
Merge pull request #42 from geeklearningio/features/plain-text-only
Add plainTextOnly Capability
2 parents e304dd4 + 5149e0c commit b5c09a9

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

src/GeekLearning.Email/IEmailSender.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ public interface IEmailSender
99

1010
Task SendEmailAsync(IEmailAddress from, string subject, string message, params IEmailAddress[] to);
1111

12-
Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, params IEmailAddress[] to);
12+
Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, bool plainTextOnly, params IEmailAddress[] to);
1313

1414
Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to);
1515

16-
Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to);
16+
Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, bool plainTextOnly, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to);
1717

18-
Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, IEmailAddress[] to, IEmailAddress[] cc, IEmailAddress[] bcc, IEmailAddress replyTo = null);
18+
Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, IEmailAddress[] to, IEmailAddress[] cc, IEmailAddress[] bcc, IEmailAddress replyTo = null, bool plainTextOnly = false);
1919

2020
Task SendTemplatedEmailAsync<T>(string templateKey, T context, params IEmailAddress[] to);
2121

src/GeekLearning.Email/Internal/EmailSender.cs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,23 +53,37 @@ public Task SendEmailAsync(IEmailAddress from, string subject, string message, p
5353
return this.SendEmailAsync(from, subject, message, Enumerable.Empty<IEmailAttachment>(), to);
5454
}
5555

56-
public Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, params IEmailAddress[] to)
56+
public Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, bool plainTextOnly, params IEmailAddress[] to)
5757
{
58-
return this.SendEmailAsync(from, replyTo, subject, message, Enumerable.Empty<IEmailAttachment>(), to);
58+
return this.SendEmailAsync(from, replyTo, subject, message, plainTextOnly, Enumerable.Empty<IEmailAttachment>(), to);
5959
}
6060

6161
public Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to)
6262
{
6363
return this.SendEmailAsync(from, subject, message, attachments, to.ToArray(), new IEmailAddress[0], new IEmailAddress[0]);
6464
}
6565

66-
public Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to)
66+
public Task SendEmailAsync(IEmailAddress from, IEmailAddress replyTo, string subject, string message, bool plainTextOnly, IEnumerable<IEmailAttachment> attachments, params IEmailAddress[] to)
6767
{
68-
return this.SendEmailAsync(from, subject, message, attachments, to.ToArray(), new IEmailAddress[0], new IEmailAddress[0], replyTo: replyTo);
68+
return this.SendEmailAsync(from, subject, message, attachments, to.ToArray(), new IEmailAddress[0], new IEmailAddress[0], replyTo: replyTo, plainTextOnly: plainTextOnly);
6969
}
7070

71-
public Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, IEmailAddress[] to, IEmailAddress[] cc, IEmailAddress[] bcc, IEmailAddress replyTo = null)
71+
public Task SendEmailAsync(IEmailAddress from, string subject, string message, IEnumerable<IEmailAttachment> attachments, IEmailAddress[] to, IEmailAddress[] cc, IEmailAddress[] bcc, IEmailAddress replyTo = null, bool plainTextOnly = false)
7272
{
73+
if (plainTextOnly)
74+
{
75+
return DoMockupAndSendEmailAsync(
76+
from,
77+
replyTo,
78+
to,
79+
cc,
80+
bcc,
81+
subject,
82+
message,
83+
null,
84+
attachments);
85+
}
86+
7387
return DoMockupAndSendEmailAsync(
7488
from,
7589
replyTo,
@@ -198,7 +212,10 @@ private async Task DoMockupAndSendEmailAsync(
198212
var joinedMockedUpRecipients = string.Join(", ", mockedUpRecipients.Select(r => $"{r.DisplayName} ({r.Email})"));
199213

200214
text = string.Concat(text, Environment.NewLine, disclaimer, Environment.NewLine, joinedMockedUpRecipients);
201-
html = string.Concat(html, "<br/><i>", disclaimer, "<br/>", joinedMockedUpRecipients, "</i>");
215+
if (html != null)
216+
{
217+
html = string.Concat(html, "<br/><i>", disclaimer, "<br/>", joinedMockedUpRecipients, "</i>");
218+
}
202219
}
203220

204221
await this.provider.SendEmailAsync(

tests/GeekLearning.Email.Integration.Test/SendSimpleEmailTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ await emailSender.SendEmailAsync(
7171
DisplayName = "Reply Address",
7272
Email = "no-reply2@test.geeklearning.io"
7373
},
74-
"Simple mail", "Hello, it's a simple mail",
74+
"Simple mail", "Hello, it's a simple mail", false,
7575
new Internal.EmailAddress
7676
{
7777
DisplayName = "test user",

0 commit comments

Comments
 (0)