System OpenBSD zapisuje wszystkie mail’e dla danego użytkownika w katalogu /var/mail
w formacie mbox
. Tak więc, jeśli jakiś daemon wyśle maila do użytkownika root, zostanie on dopisany na końcu pliku /var/mail/root
. Takie rozwiązanie jest mało wygodne (nie tylko w przypadku OpenBSD), jeżeli mamy pod sobą większą ilość serwerów. Na szczęście w bardzo łatwy sposób możemy przekierować wszystkie maile na zewnętrzne konto (lub konta).
W poniższym wpisie pokażemy jak przekierować wszystkie maile dla użytkownika root na zewnętrzne konto gmail. Tak naprawdę cała konfiguracja sprowadza się do dodania jednej lini w pliku /etc/mail/aliases
oraz wywołania polecenia newaliases
:
root@obsd51:/var/mail>cat /etc/mail/aliases root: adres.gmail@gmail.com # Basic system aliases -- these MUST be present MAILER-DAEMON: postmaster postmaster: root
Na samej górze pliku dodajemy wpis „root: adres.gmail@gmail.com
” (oczywiście używając swojego prawdziwego konta). Następnie poleceniem newaliases
aktualizmujemy bazę aliases.db
:
root@obsd51:/etc/mail>newaliases /etc/mail/aliases: 56 aliases, longest 24 bytes, 820 bytes total
I to już wszystko, możemy teraz przetestować konfigurację korzystając z polecenia telnet
. Wysyłając pocztę na adres root@localhost
powinna być dostarczona na zewnętrzne konto gmail:
root@obsd51:/etc/mail>telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ehlo localhost ... ... mail from:root@localhost 250 2.1.0 root@localhost... Sender ok rcpt to:root@localhost 250 2.1.5 root@localhost... Recipient ok data 354 Enter mail, end with "." on a line by itself to jest wiadomosc testowa . 250 2.0.0 q7N7oIm9015484 Message accepted for delivery quit
Sprawdźmy jeszcze plik maillog
:
Aug 23 07:50:09 obsd51 sendmail[29739]: alias database /etc/mail/aliases rebuilt by root Aug 23 07:50:09 obsd51 sendmail[29739]: /etc/mail/aliases: 56 aliases, longest 24 bytes, 820 bytes total Aug 23 07:50:45 obsd51 sm-mta[15484]: q7N7oIm9015484: from=root@localhost, size=11, class=0, nrcpts=1, msgid=<201208230750.q7N7oIm9015484@mojadomena.com>, proto=ESMTP, daemon=MTA, relay=root@localhost [127.0.0.1] Aug 23 07:50:46 obsd51 sm-mta[23668]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-RC4-SHA, bits=128/128 Aug 23 07:50:47 obsd51 sm-mta[23668]: q7N7oIm9015484: to=adres.gmail@gmail.com, ctladdr=root@localhost (0/0), delay=00:00:15, xdelay=00:00:02, mailer=esmtp, pri=30385, relay=gmail-smtp-in.l.google.com. [173.194.70.27], dsn=2.0.0, stat=Sent (OK 1345708247 d30si9154670weq.105)
Jak widać powyżej mail został rzeczywiście przesłany na zewnętrzne konto:
to=adres.gmail@gmail.com, ctladdr=root@localhost
O ile ISP nie blokuje portu 25 to wszystko jest ok, miło i przyjemnie, ale np. tepsa dla adsl i chyba tylko dla neostrady zablokowało 25 port, dla DSLa nie i tu robi się problem. Próbowałeś przekierować sendmaila czy postfixa na 587 port? Mi za cholerę się nie udało na OpenBSD. Mimo poprawnych regułek, wpisów sendmail czy postfix nadal pchał maile 25 portem i po chwili dostawał timeouta, wiadomo. Trochę to obszedłem poprzez relay na gmaila czy obojętnie jaki zew. mail :
https://calomel.org/opensmtpd.html tutaj jest konfig co i jak. Jak masz ochotę to możesz dopisać jak uda Ci się zmusić sendmaila czy postfixa zeby nie używał 25 portu a używał 587, mnie się nie udało mimo poprawnych konfigów, za to udało się relayem na zew. serwer mailowy. Działa super.
pozdrawiam