Posílání emailu na Gmail SMTP pomocí Postfix relay

Posílání zpráv je celkem důležitý, hlavně když potřebujete vědět, co se s vaším serverem děje. Situace se celkem komplikuje, když jste na lokální síti a chcete odesílat emaily ven do Internetu. Musíte nastavit server tak, aby zprávy jenom odesílal. Neslouží tedy jako MTA (Mail Transfer Agent) pro lokální síť. K tomu všemu použijeme program Postfix.

Instalace Postfixu

root@server:~ # cd /usr/ports/mail/postfix
root@server:~ # make install clean

Objeví se menu s konfigurací. Zaškrtněte minimálně tyto možnosti: DOCS, EAI, PCRE, SASL, TLS. Před ukončením instalace Postfixu se objeví tato hláška:

Would you like to activate Postfix in /usr/local/etc/mail/mailer.conf [n]?

Odpovězte “Y”.

Do souboru /etc/rc.conf přidejte následující řádek:

postfix_enabl="YES"

Tím zajistíte, že se bude Postfix startovat při nabíhání systému. Instalaci tak máme hotovou.

Vypnutí Sendmailu

Sendmail je výchozí MTA ve FreeBSD. Editací souboru /etc/rc.conf vypnete Sendmail. Přidejte tyto řádky:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Dále zkontrolujte soubor /etc/periodic.conf a ujistěte se, že všechny hodnoty jsou nastaveny na “NO”. Pokud tento soubor neexistuje, tak ho vytvořte.

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

To je ke změně MTA vše. Více informací naleznete v Handbooku. Nakonec můžete Sendmail vypnout.

root@server:~ # service sendmail stop

Konfigurace Postfixu

Hlavni nastavení Postfixu se nachází v souboru /usr/local/etc/postfix/main.cf. Otevřete soubor a upravte následující řádky:

# The myhostname parameter specifies the internet hostname 
# of this system.
myhostname = server.example.com

# The myorigin parametr specifies the domain that is used
# Example: tonda@example.com instead tonda@server.example.com
myorigin = $mydomain

# Specify "mynetworks_style = host" when Postfix should "trust" 
# only the local machine.
mynetworks_style = host

# Set external SMTP relay host.
relayhost = [smtp.gmail.com]:587

Postfix umí získat hostname z operačního systému. Jestliže nemáte plně kvalifikované doménové jméno (FQDN) nebo chcete použít jiné, upravte proměnnou myhostname. Pokud máte hostname ve formátu server.example.com, potom musíte nastavit proměnnou myorigin jako je to uvedené výše. Tím docílíte, že emaily budou mít tvar user@example.com a půjdou poslat na vzdálený SMTP server. Vzdálený SMTP server kontroluje, zda je doména registrovaná a tak umožní přijetí pošty.

Poslední řádek určuje vzdálený SMTP server, kam se budou lokální emaily přeposílat.

Nyní potřebujeme povolit autentizaci na serveru. Na konec souboru /usr/local/etc/postfix/main.cf přidejte tyto řádky:

# Enable SASL authentication
smtp_sasl_auth_enable = yes
# Disallow methods that allow anonymous authentication
smtp_sasl_security_options = noanonymous
# Location of sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
# Enable STARTTLS encryption
smtp_tls_security_level = encrypt

Přidání přihlašovacích údajů na vzdálený SMTP server do Postfixu

Přihlašovací údaje jsou uložené v souboru /usr/local/etc/postfix/sasl_passwd. Otevřete v editoru tento soubor a přidejte následující řádek:

[smtp.gmail.com]:587 username@gmail.com:password

Zabezpečení souboru s přihlšovacíma údajema provedeme příkazem:

root@server:~ # chown root:root /usr/local/etc/postfix/sasl_passwd
root@server:~ # chmod 0600 /usr/local/etc/postfix/sasl_passwd

Vygenerujte hašovací souboru s databází pro přihlašování:

root@server:~ # postmap /usr/local/etc/postfix/sasl_passwd

Spusťte emailový server.

root@server:~ # service postfix start

Přesměrování emailů uživatele root

Uživatel root přijímá téměř všechen provoz od systémových aplikací (daemonů). Je proto dobré tyto emaily přesměrovat na váš email. Otevřete v editoru soubor /etc/mail/aliases (jako root) a přidejte řádek:

root:   adminmail@example.com

adminmail@example.com je adresa, kam vám budou chodit přesměrované emaily od uživatele root. Nyní je potřeba vytvořit nebo zaktualizovat databázi aliasů.

root@server:~ # newaliases

Příkazem postmap zjistíte, zda přesměrování je nastaveno správně.

root@server:~ # postmap -q root hash:/etc/aliases

Ve výstupu by měla být adresa adminmail@example.com.

Poslání testovací zprávy

Otevřete v editoru soubor msg.txt s následujícím textem:

To: adminmail@example.com
From: servermail@example.com
Subject: 01/03/2019 Testing message
Here is a test message.

K posílání zprávy z příkazové řádky se používá příkaz sendmail:

user@server:~ % sendmail adminmail@example.com < msg.txt

Pokud jde vše bez problémů, Postfix by měl poslat email na vámi zadanou adresu. V případě problémů zkontrolujte soubor /var/log/maillog.

Zdroje:

Reklama

Určitě chcete vědět víc, protože zkoušet servery doma je nuda. A přitom stačí tak málo. Pronajměte si VPS u Vultr.com nebo DigitalOcean.com a poznáte tu pravou chuť Internetu. Super je, že na prvních 30 dní dostanete 50$ jako bonus.

Chci zkusit Vultr.com Dám přednost DigitalOcean.com

Kdo píše tento web

Jmenuji se Daniel. FreeBSD používám od roku 2005. Vyzkoušel jsem všelijaké distribuce Linuxu a pořád cítil, že to není ono. Ten chaos! Pak vyšlo FreeBSD 5.3, přelomová verze. Od té doby jedu na FreeBSD. Čteme dál...