The server committed a protocol violation The server response was:
mostafavb opened this issue · comments
I am using FluentEmail in Asp.Net project on .netframework 4.8, when I want to use SendAsync method I get this error:
"The server committed a protocol violation The server response was: "
there is nothing anymore to give more information about this error.
`
SmtpSender smtpSender =
new SmtpSender(() => new System.Net.Mail.SmtpClient("smtp.office365.com")
{
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
Port = 587,
Credentials = new System.Net.NetworkCredential("mvazini@tyt.com", "00X-0")
});
Email.DefaultSender = smtpSender;
var email = Email
.From("mvazini@tyt.com", "Customer Care")
.To(toAddresses)
.Subject(subject)
.UsingTemplate(body, new { });
try
{
var sendedEmail = await email.SendAsync();
return sendedEmail.Successful;
}
catch (Exception ex)
{
LogManager.InsertLog(LogTypeEnum.SystemError, "Error sending e-mail for order notification." + ex.Message, ex);
return false;
}
`
@mostafavb you could try using FluentEmail.MailKit instead of FluentEmail.Smtp.
FluentEmail.MailKit is the current recommendation from Microsoft and was the only method of getting SMTP over port 587 working. In my case, it seemed like FluentEmail.Smtp could not properly negotiate which SSL / TLS encryption should be used for the connection and caused the same error you are seeing.