protected async Task <IActionResult> SendMessageAsync(EmailModel model, IEmailClientConfiguration config = null) { if (config == null) { config = await _emailClientSettingsFactory.GetConfigurationAsync(); } _emailClient.Configuration = config; return(await this.SendEmailAsync(model, _emailClient)); }
/// <summary> /// Updates the configuration settings used to connect with the underlying <see cref="IEmailClientService"/>. /// </summary> /// <param name="config">The new configuration to set.</param> public virtual void ChangeConfiguration(IEmailClientConfiguration config) { Client.Configuration = config; }
public SendGridEmailClient(ISendGridClient argSendGridClient, IEmailClientConfiguration argEmailClientConfiguration) { sendGridClient = argSendGridClient; emailClientConfiguration = argEmailClientConfiguration; }
/// <summary> /// Asynchronously establish a connection to the specified mail server. /// </summary> /// <param name="client">The mail service client used to connect.</param> /// <param name="cfg">The configuration settings used to establish a connection.</param> /// <param name="cancellationToken">The token used to cancel an ongoing async operation.</param> /// <param name="certificateValidator">A callback function to validate the server certificate.</param> /// <returns></returns> public static async Task <IMailService> ConnectAsync(this IMailService client, IEmailClientConfiguration cfg, CancellationToken cancellationToken = default(CancellationToken), RemoteCertificateValidationCallback certificateValidator = null) { client.ServerCertificateValidationCallback = certificateValidator ?? _certValidator; await client.ConnectAsync(cfg.Host, cfg.Port, cfg.UseSsl, cancellationToken); if (cfg.RequiresAuth) { await client.AuthenticateAsync(cfg.UserName, cfg.Password); } return(client); }