Può essere molto comodo, come ad esempio per chi utilizza servizi come zoneminder, rtorrent ecc, avere in casa una sorta di “Gmail Relay” per inviare posta dal proprio account Gmail. In questa guida vedremo come configurare postfix per inviare email con il nostro account di posta @gmail.com.
Installiamo innanzi tutto i pacchetti necessari:
# pacman -Sy postfix ca-certificates
una volta completata l’installazione entriamo nella directory di configurazione di postfix:
# cd /etc/postfix
e salviamo il file di configurazione di default con i comando:
# cp main.cf main.cf-old
a questo punto cancelliamo l’intero contenuto del file main.cf con il comando:
# echo "" > main.cf
e inseriamo all’interno del file main.cf le seguenti righe:
daemon_directory = /usr/lib/postfix myorigin = dominio-vero.com mydomain = dominio-vero.com myhostname = dominio-vero.com smtp_generic_maps = hash:/etc/postfix/generic header_checks = regexp:/etc/postfix/header_checks relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd_gmail smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_enforce_tls = yes disable_dns_lookups = yes message_size_limit = 35651584 smtp_destination_rate_delay = 60 relay_destination_rate_delay = 60 mynetworks = 127.0.0.1 alias_maps = hash:/etc/aliases
Salviamo il file main.cf sostituendo ovviamente “dominio-vero.com” con il vostro nome del dominio (es. pippo.dyndns.org), se non lo si ha è possibile lasciarlo invariato.
Creiamo il file sasl_passwd_gmail con il comando:
# touch /etc/postfix/sasl_passwd_gmail
e inseriamo all’interno:
[smtp.gmail.com]:587 username@gmail.com:miapassword
sostituendo ovviamente “username” e “miapassword” con le nostre credenziali gmail.
Aggiungiamo alla fine del file /etc/postfix/header_checks le seguenti righe:
/^To:.*@hostname.localnet/ REDIRECT username@gmail.com /^From:(.*@dominio-vero.com[>]*)/ PREPEND Reply-To:$1
sostituendo anche questa volta “username” con il nostro account gmail e “dominio-vero.com” con il nome inserito anche nel main.cf. Salviamo e aggiungiamo alla fine del file /etc/postfix/generic le seguenti righe:
root@dominio-vero.com username@gmail.com root@hostname.localnet username@gmail.com sudoer@hostname.localnet username@gmail.com
sostituendo anche qui “username” e “dominio-vero.com“.
A questo punto lanciamo, come utente root, i comandi:
# postmap /etc/postfix/generic # postmap /etc/postfix/sasl_passwd_gmail # cat /etc/ssl/certs/Equifax_Secure_CA.pem >/etc/postfix/cacert.pem # ln -s /etc/postfix/aliases.db /etc/aliases.db # postconf -e alias_maps=hash:/etc/aliases
Avviamo postfix con il comando:
# systemct start postfix
e rendiamolo eseguibile all’avvio con il comando:
# systemctl enable postfix
A questo punto se andato tutto bene, possiamo testare inviando una mail con il comando:
$ echo "testo del messaggio" | mail -r "username@gmail.com" -s "Oggetto della mail" destinatario@email.com
per verificare il corretto invio possiamo in ogni momento visionare il log /var/log/mail.log e tenere traccia delle email inviate.
Se si vuole inviare email da remoto, ad esempio da un pc delle stessa rete, bisogna per prima cosa inserire nel file main.cf in mynetworks l’ip del cilent, riavviare postfix e nel client lanciare il comando:
$ echo "testo del messaggio" | mail -r "username@gmail.com" -s "Oggetto della mail" -S smtp=IPPOSTFIX destinatario@email.com
sostituendo “IPPOSTFIX” con l’ip della macchina dove abbiamo configurato postfix.
Se vogliamo abilitare tutta la rete, è possibile inserire nella direttiva mynetworks tutta la subnet, ad esempio 192.168.0.0/24.