fullstackhero / blazor-starter-kit

Clean Architecture Template for Blazor WebAssembly Built with MudBlazor Components.
MIT License
3.45k stars 726 forks source link

SMTP SSL/TLS #364

Closed agorota closed 2 years ago

agorota commented 2 years ago

Hi,

I would like to send the real registration emails via SSL / TLS from port 465 of a generic provider, how can I change the code?

"MailConfiguration": {
    "From": "smtp@********.it",
    "Host": "smtp.provider.it",
    "Port": 465,
    "UserName": "smtp@*******.it",
    "Password": "*********",
    "DisplayName": "*********"
  },
public async Task SendAsync(MailRequest request)
        {
            try
            {
                var email = new MimeMessage
                {
                    Sender = new MailboxAddress(_config.DisplayName, request.From ?? _config.From),
                    Subject = request.Subject,
                    Body = new BodyBuilder
                    {
                        HtmlBody = request.Body
                    }.ToMessageBody()
                };
                email.To.Add(MailboxAddress.Parse(request.To));
                using var smtp = new SmtpClient();
                //await smtp.ConnectAsync(_config.Host, _config.Port, SecureSocketOptions.StartTls);
                await smtp.ConnectAsync(_config.Host, _config.Port, SecureSocketOptions.SslOnConnect);
                await smtp.AuthenticateAsync(_config.UserName, _config.Password);
                await smtp.SendAsync(email);
                await smtp.DisconnectAsync(true);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message, ex);
            }
        }

Thanks

agorota commented 2 years ago
"MailConfiguration": {
    "From": "******@*****.it",
    "Host": "smtp.office365.com",
    "Port": 587,
    "UserName": "*****@*******.it",
    "Password": "********",
    "DisplayName": "******"
  },

using Microsoft365 SMTP server it's OK