Wysyłanie emaili przez zewnętrzny server SMTP

0

Cześć,

mam problem z wysyłaniem emaili przez .net smtp client na serwerze linux. Wszystko działa u mnie na komputerze z windows ale nie działa na serwerze.
Przy próbie wysłania emaila otrzymuje taki błąd:

the server committed a protocol violation. the server response was: ugfzc3dvcmq6

Używam zewnętrznego serwera smtp od ovh: pro1.mail.ovh.net

Próbowałem telnetem wysłać emaila z poziomu serwera, żeby zdiagnozować w czym leży problem ale nie jestem w stanie tego zrobić

wykonuję polecenie

EHLO yourdomain.com

widzę że

AUTH: GSSAPI NTLM

próbowałem wysłać emaila ale jakiej bym metody auth nie użył to mam błąd

XXXX is unrecognied authentication type
telnet pro1.mail.ovh.net 587

HELO pro1.mail.ovh.net
AUTH LOGIN
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
DATA
Subject: Test email
Hello world!

.
QUIT

Miałem przez chwile skonfigurowane na serwerze wysyłanie emaili za pomocą .net smtp client który łączył się z serwerem smtp Gmail i tam wszystko działało. Tylko z tym smtp ovh jest jakiś problem.

Może macie jakieś wskazówki jak to zdiagnozować ?

1

A dokąd wysyłasz z ovh? Ostatnio też miałem taki problem, to okazało się, że np. gmail ma ich na czarnej liście i jak chciałem wysłać maila z własnej aplikacji, to trafiało do spamu.

1

Ale ten bład sugeruje, że metoda autentykacji nie jest obsługiwana. Inna sprawa - zauważ, że "ugfzc3dvcmq6" to kod Base64 dla "passwd". To tłumaczy dlaczego przez telnet się nie udało. Mam wątpliwości czy poprawnie używasz metod logowania, które są wspierane.

mam problem z wysyłaniem emaili przez .net smtp client na serwerze linux. Wszystko działa u mnie na komputerze z windows ale nie działa na serwerze.

Z taką ilością szczegółów, to trudno wróżyć na czym polega różnica.

0

@nalik: jakich dodatkowych informacji potrzeba, to dodam?

Wysyłając telnet również próbowałem używać hasła w formacie base64

tak wygląda konfiguracja smtp client

 "SmtpServer": "pro1.mail.ovh.net",
 "Port": 587
using (var client = new SmtpClient(configuration.SmtpServer, configuration.Port))
            {
                try
                {
                    client.EnableSsl = true;
                    client.Credentials = new NetworkCredential(configuration.UserName, configuration.Token);

                    await client.SendMailAsync(CreateMailMessage(email, configuration.From));
                }
                catch (Exception ex)
                {
                    throw new Exception("sendig email exception", ex);
                }
                finally
                {
                    client.Dispose();
                }
            }
2

Uzyłem MailKit i okazało się że ten SMTP serwer od ovh nie wspiera ssl/tls. Uzyłem STARTTLS i działa.

Jakby ktoś to kiedyś miał podobny problem to co do telnet i uwierzytlnienia NTLM to temat jest trochę bardziej skomplikowany.
Tutaj linki które wyjaśniają jak tego używać.

https://curl.se/rfc/ntlm.html#ntlmSmtpAuthentication

https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smtpntlm/a048c79f-7597-401b-bcb4-521d682de765?redirectedfrom=MSDN!

1 użytkowników online, w tym zalogowanych: 0, gości: 1