diff --git a/src/Senders/FluentEmail.SendGrid/FluentEmailSendGridBuilderExtensions.cs b/src/Senders/FluentEmail.SendGrid/FluentEmailSendGridBuilderExtensions.cs index 048544d1..02de28fd 100644 --- a/src/Senders/FluentEmail.SendGrid/FluentEmailSendGridBuilderExtensions.cs +++ b/src/Senders/FluentEmail.SendGrid/FluentEmailSendGridBuilderExtensions.cs @@ -6,9 +6,9 @@ namespace Microsoft.Extensions.DependencyInjection { public static class FluentEmailSendGridBuilderExtensions { - public static FluentEmailServicesBuilder AddSendGridSender(this FluentEmailServicesBuilder builder, string apiKey, bool sandBoxMode = false) + public static FluentEmailServicesBuilder AddSendGridSender(this FluentEmailServicesBuilder builder, string apiKey, string host = null, bool sandBoxMode = false) { - builder.Services.TryAdd(ServiceDescriptor.Singleton(_ => new SendGridSender(apiKey, sandBoxMode))); + builder.Services.TryAdd(ServiceDescriptor.Singleton(_ => new SendGridSender(apiKey, host, sandBoxMode))); return builder; } } diff --git a/src/Senders/FluentEmail.SendGrid/SendGridSender.cs b/src/Senders/FluentEmail.SendGrid/SendGridSender.cs index c0fb9b11..ffe7ad5c 100644 --- a/src/Senders/FluentEmail.SendGrid/SendGridSender.cs +++ b/src/Senders/FluentEmail.SendGrid/SendGridSender.cs @@ -5,7 +5,6 @@ using System.Threading; using System.Threading.Tasks; using FluentEmail.Core; -using FluentEmail.Core.Interfaces; using FluentEmail.Core.Models; using SendGrid; using SendGrid.Helpers.Mail; @@ -16,11 +15,13 @@ namespace FluentEmail.SendGrid public class SendGridSender : ISendGridSender { private readonly string _apiKey; + private readonly string _host; private readonly bool _sandBoxMode; - public SendGridSender(string apiKey, bool sandBoxMode = false) + public SendGridSender(string apiKey, string host = null, bool sandBoxMode = false) { _apiKey = apiKey; + _host = host; _sandBoxMode = sandBoxMode; } public SendResponse Send(IFluentEmail email, CancellationToken? token = null) @@ -145,7 +146,7 @@ private async Task BuildSendGridMessage(IFluentEmail email) private async Task SendViaSendGrid(SendGridMessage mailMessage, CancellationToken? token = null) { - var sendGridClient = new SendGridClient(_apiKey); + var sendGridClient = new SendGridClient(_apiKey, _host); var sendGridResponse = await sendGridClient.SendEmailAsync(mailMessage, token.GetValueOrDefault()); var sendResponse = new SendResponse(); diff --git a/test/FluentEmail.Core.Tests/SendGridSenderTests.cs b/test/FluentEmail.Core.Tests/SendGridSenderTests.cs index 95867f07..fe025abc 100644 --- a/test/FluentEmail.Core.Tests/SendGridSenderTests.cs +++ b/test/FluentEmail.Core.Tests/SendGridSenderTests.cs @@ -21,7 +21,7 @@ public void SetUp() { if (string.IsNullOrWhiteSpace(apiKey)) throw new ArgumentException("SendGrid Api Key needs to be supplied"); - var sender = new SendGridSender(apiKey, true); + var sender = new SendGridSender(apiKey, null, true); Email.DefaultSender = sender; }