lukencode / FluentEmail

All in one email sender for .NET. Supports popular senders (SendGrid, MailGun, etc) and Razor templates.

Home Page:https://lukelowrey.com/dotnet-email-guide-2021/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The server committed a protocol violation The server response was:

mostafavb opened this issue · comments

commented

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;
        }

`

Screenshot 2022-09-21 085808

@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.