Lokalny serwer SMTP i wysyłanie wiadomości

0

Ostatnio się trochę obraziłem na mojego dostawcę serwera mailowego i postanowiłem nieco podrążyć temat stawiania swojego serwera SMTP. Znalazłem ciekawą i ciągle rozwijaną bibliotekę C#: https://github.com/cosullivan/SmtpServer

Przetestowałem różne proponowane przykłady i do końca nie rozumiem jak skonfigurować serwer i co robię źle. Dla przykładu, podstawowa konfiguracja serwera wygląda następująco:

var options = new SmtpServerOptionsBuilder()
.ServerName("SmtpServer SampleApp trial")
.Port(25, 587, 9025)
.Build();

Mam też skonfigurowanego klienta:

var message = new MimeMessage();
message.From.Add(MailboxAddress.Parse(from ?? "[email protected]"));
message.To.Add(MailboxAddress.Parse(to ?? "[email protected]"));
message.Subject = subject ?? "Hello World";
message.Body = body ?? new TextPart("plain")
{
    Text = "Email body of Hello World message"
};
using SmtpClient client = new SmtpClient();
client.Connect("localhost", port = 9025, useSsl = false);

Po wywołaniu .Send(); klienta otrzymuję

SessionCreated: 127.0.0.1:2156
Command Executing
EHLO: DomainOrAddress=bakunet
Command Executed
EHLO: DomainOrAddress=bakunet
Command Executing
MAIL: Address=[email protected] Parameters=
Command Executed
MAIL: Address=[email protected] Parameters=
Command Executing
RCPT: Address=[email protected]
Command Executed
RCPT: Address=[email protected]
Command Executing
DATA
Command Executed
DATA
Command Executing
QUIT
Command Executed
QUIT
SessionCompleted: 127.0.0.1:2156

Niestety, email nie dochodzi do odbiorcy. Do końca nie rozumiem kilku rzeczy, wynika to trochę z nieznajomości protokołu:

  • czy serwer SMTP może wysłać wiadomość bez skonfigurowanego DNS?
  • jeśli nie może, jak można skonfigurować pod niego DNS?
  • czy firewall mojego komputera (dla localhost) może blokować port 9025 i pozostałe skonfigurowane?
  • czemu po wysłaniu wiadomości jest tworzona sesja z losowym portem? SessionCreated: 127.0.0.1:2156
  • jakie mogą być inne przyczyny tego, że wiadomość nie jest dostarczona?
0

Ok, trochę pogrzebałem i potestowałem. Okazuje się, że mój problem polega na kilku rzeczach:

  • Jeśli chcę wysyłać wiadomości w świat, powinienem skonfigurować DNS MX tak by się łączyła z moim statyczny IP lub no-ip dla dynamicznego. To jest najmniejsze zmartwienie.
  • Wielu ISP blokuje powszechnie stosowane porty SMTP, ale to też jest do obejścia prze wykorzystanie innego portu.
  • Źle skonfigurowany serwer będzie miał słabą dostarczalność wiadomości.
  • ISP może mieć swoje filtry, do tego dodając czarne i szare listy domen oraz adresów IP, a ku mojemu zaskoczeniu niektóre moje dynamiczne IP już na takich listach były.

Podsumowując, własny serwer mailowy może nie być najlepszym pomysłem, chyba że komuś bardzo na tym zależy to będzie musiał dobrze skonfigurować serwer i znaleźć odpowiedniego dostawcę internetu. Na chwilę obecną mam dużo innych rzeczy do roboty niż wchodzenie na poziome ekspercki w temacie konfiguracji SMTP :( Choć może kiedyś wrócę do tego. Póki co pozostaje mi pogodzenie się z dostawcą mojego hostingu mailowego.

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