Skip to content

Commit e716dbc

Browse files
authored
Add SendGrid Send check for any To Addresses (#74)
closes #73
1 parent 9cb7d31 commit e716dbc

1 file changed

Lines changed: 24 additions & 13 deletions

File tree

src/OLT.Email.SendGrid/ArgBuilders/OltTemplateArgs.cs

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using SendGrid.Helpers.Mail;
55
using System;
66
using System.Collections.Generic;
7+
using System.Linq;
78
using System.Net;
89
using System.Threading.Tasks;
910

@@ -109,24 +110,34 @@ public override async Task<OltSendGridEmailResult> SendAsync()
109110
{
110111
throw new OltSendGridValidationException(ValidationErrors());
111112
}
112-
113+
114+
var result = new OltSendGridEmailResult
115+
{
116+
RecipientResults = BuildRecipients()
117+
};
118+
113119
var client = CreateClient();
114-
var msg = CreateMessage(BuildRecipients());
115-
var sendResponse = await client.SendEmailAsync(msg);
120+
var msg = CreateMessage(result.RecipientResults);
116121

117-
var result = new OltSendGridEmailResult();
118-
if (sendResponse.StatusCode != HttpStatusCode.Accepted)
122+
if (msg.Personalizations.Any() && msg.Personalizations[0].Tos?.Count > 0)
119123
{
120-
var body = await sendResponse.Body.ReadAsStringAsync();
124+
var sendResponse = await client.SendEmailAsync(msg);
121125

122-
result.Errors.Add($"{sendResponse.StatusCode}");
123-
result.SendGrid = JsonConvert.DeserializeObject<OltSendGridResponseJson>(body);
124-
result.SendGrid.Errors.ForEach(error =>
126+
if (sendResponse.StatusCode != HttpStatusCode.Accepted)
125127
{
126-
result.Errors.Add($"{error.Field} - {error.Message}");
127-
});
128-
129-
128+
var body = await sendResponse.Body.ReadAsStringAsync();
129+
130+
result.Errors.Add($"{sendResponse.StatusCode}");
131+
result.SendGrid = JsonConvert.DeserializeObject<OltSendGridResponseJson>(body);
132+
result.SendGrid.Errors.ForEach(error =>
133+
{
134+
result.Errors.Add($"{error.Field} - {error.Message}");
135+
});
136+
}
137+
}
138+
else
139+
{
140+
result.Errors.Add("No Recipients were attached. This can be caused by skipping due to the whitelist");
130141
}
131142
return result;
132143
}

0 commit comments

Comments
 (0)