Konfigurace Postfix Gmail App Password na Ubuntu

By | 04/12/2023

Last Updated on 12/11/2025 by administrator

Konfigurace Postfix Gmail App Password na Ubuntu

Konfigurace Postfix Gmail App Password na Ubuntu

Motivace:

Tento článek popisuje jak nakonfigurovat službu Postfix, což je Mail Transfer Agent (MTA), který slouží k přenosu a doručování e-mailových zpráv. Postfix je oblíbený pro svou snadnou konfigurovatelnost, vysokou výkonnost a bezpečnost. Součástí toho bude nastavení dvoufaktorovou autentizaci přes Gmail a vytvoření jedinečného heslo v App Passwords.

Pozn. Tento článek mi také pomohl s odstraněním problemu na Proxmox na kterém jel wordpress, který měl problém se zasíláním emailu (Undelivered Mail Returned to Sender).

.

Undelivered Mail Returned to Sender

OS:

Implementace byla prováděna na Ubuntu 22.04 LTS. Nicméně návod bude pravděpodobně aplikovatelný na nižší verze Ubuntu.

Implementace[1,2]:

1. Google – nastavení dvoufaktorové autentizace:

Postup k nastavení dvoufaktorové autentizace lze vidět v tomto článku, kde je nutné následně vygenerovat jedinečné heslo v App Passwords pro Postfix.

Gmail – nastavení dvoufaktorové autentizace a App Passwords

2. Konfigurace Postfix:

Níže uvedený příkaz nainstaluje Postfix, což je MTA (Mail Transfer Agent), který slouží k odesílání a přijímání e-mailů. Balíček libsasl2-2 obsahuje knihovnu pro Simple Authentication and Security Layer (SASL), která může být použita pro zabezpečení komunikace včetně autentizace. Balíček ca-certificates obsahující certifikáty certifikačních autorit. Je důležitý pro zajištění bezpečné komunikace přes SSL/TLS. Balíček libsasl2-modules obsahuje další moduly pro SASL.

apt install postfix libsasl2-2 ca-certificates libsasl2-modules

Otevřít konfigurační soubor main.cf pro Postfix:

vi /etc/postfix/main.cf

v main.cf zakomentovat řádky níže:

#mydestination = $myhostname, localhost.$mydomain, localhost
#relayhost =

a zkopírovat do main.cf tyto řádky níže, současně ověřit že tyto řádky v konfiguraci main.cf neexistují:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Vytvořit soubor sasl_passwd, který bude obsahovat informace potřebné k autentizaci na externím serveru:

vi /etc/postfix/sasl_passwd

a zkopírovat řádek níže, kde používaný emailový účet pro odesílání emailu je vaslogin@gmail.com a qcsn sxsk xmte mcas je heslo vygenerované přes App Passwords. Emailová adresa a heslo jsou oddělené dvojtečkou:

[smtp.gmail.com]:587 vaslogin@gmail.com:qcsn sxsk xmte mcas

Pro soubor sasl_passwd přidat oprávnění čtení a zápis

sudo chmod 600 /etc/postfix/sasl_passwd

Příkaz vytvoří ze souboru sasl_passwd databázi sasl_passwd.db (případně příkaz provede refresh DB souboru):

sudo postmap /etc/postfix/sasl_passwd

Zkontrolování konfigurace Postfix:

postfix check

Provést restart služby Postfix:

service postfix restart

Kontrola, zda služba Postfix běží:

service postfix status

Výstup příkazu service postfix status ukazuje, že služba Postfix je aktivní:

* postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2023-12-04 22:05:36 UTC; 1min ago
       Docs: man:postfix(1)
    Process: 2467 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 2467 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Dec 04 22:05:36 postfix-clanek systemd[1]: Starting Postfix Mail Transport Agent...
Dec 04 22:05:36 postfix-clanek systemd[1]: Finished Postfix Mail Transport Agent.

Zaslání testovacího emailu:

Nainstalovat balíček mailutils, který obsahuje různé užitečné utility pro práci s e-mailovými zprávami, včetně odesílání a přijímání e-mailů:

apt install mailutils

Pro zaslání odeslání jednoduchého testovacího e-mailu lze využít příkaz níže, kde řetězec echo definuje obsah zprávy a mail -s zase předmět emailové zprávy:

echo "Test mail from postfix" | mail -s "Test Postfix" prijemce@seznam.cz

V případě problému se zasláním emailu, je možné kouknout do obsahu fronty odesílaných e-mailů, které jsou momentálně uloženy na serveru a čekají na doručení:

postqueue -p

Ukázka přijetí emailové zprávy:

Konfigurace Postfix Gmail App Password

Logy:

Při řešení troubleshootingu lze využít logovací soubor mail.log ve složce /var/log/, kde postfix standardně loguje:

cat /var/log/mail.log

Částečný výstup příkazu ukazuje, že testovací email byl správně odeslán:

Dec  4 22:12:55 postfix-clanek postfix/pickup[2468]: 84A3C589: uid=0 from=<root@postfix-clanek.lan>
Dec  4 22:12:55 postfix-clanek postfix/cleanup[2709]: 84A3C589: message-id=<20231204221255.84A3C589@postfix-clanek.localdomain>
Dec  4 22:12:55 postfix-clanek postfix/qmgr[2469]: 84A3C589: from=<root@postfix-clanek.lan>, size=376, nrcpt=1 (queue active)
Dec  4 22:12:57 postfix-clanek postfix/smtp[2711]: 84A3C589: to=<prijemce@seznam.cz>, relay=smtp.gmail.com[74.125.133.109]:587, delay=1.8, delays=0.03/0.13/0.51/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK  1701727977 o14-20020a056000010e00b00333359b522dsm8520400wrx.77 - gsmtp)
Dec  4 22:12:57 postfix-clanek postfix/qmgr[2469]: 84A3C589: removed

Zdroj:

[1] https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/

[2] https://kifarunix.com/configure-postfix-to-use-gmail-app-passwords

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *