{"id":172,"date":"2017-10-07T18:04:23","date_gmt":"2017-10-07T16:04:23","guid":{"rendered":"http:\/\/www.linuxit.it\/?p=172"},"modified":"2017-10-08T02:25:16","modified_gmt":"2017-10-08T00:25:16","slug":"postfix-relay-google","status":"publish","type":"post","link":"https:\/\/www.linuxit.it\/?p=172","title":{"rendered":"Postfix relay tramite Google"},"content":{"rendered":"<h1>Inoltrare le mail da postfix ai server di Google<\/h1>\n<h2>In questa guida vediamo come configurare Postfix per inoltrare le mail inviate dal sistema tramite il server SMTP di google, utilizzando un indirizzo @gmail.com.<\/h2>\n<p>Capita spesso di creare degli script in bash personalizzati per effettuare delle operazioni di routine come il backup di una cartella, di un database, oppure di dover eseguire un comando tramite cron.<\/p>\n<p>Possiamo implementare una funzione molto comoda che ci avverte tramite mail quando la procedura ha avuto successo o se magari \u00e8 fallita, addirittura allegando un log delle operazioni effettuate.<\/p>\n<p>Per fare questo abbiamo bisogno che <strong>il nostro server<\/strong> possa inviare mail in modo sicuro e controllato e soprattutto che queste email non finiscano nello spam, quale modo migliore se non inoltrare il tutto tramite il server <strong>SMTP di Google<\/strong> ?<\/p>\n<p>La distribuzione di riferimento utilizzata per questo test \u00e8 la <strong>Debian 8.9 64 Bit<\/strong>, per visualizzare nel dettaglio la versione della nostra Debian basta eseguire il comando:<\/p>\n<blockquote><p>cat \/etc\/debian_version<\/p><\/blockquote>\n<p>l&#8217;<strong>installazione di Postfix<\/strong> \u00e8 molto semplice, basta digitare da riga di comando, assicurandosi di avere i permessi di root il seguente comando:<\/p>\n<blockquote><p>apt-get install postfix -y<\/p><\/blockquote>\n<p>In fase di installazione ci verr\u00e0 chiesto l&#8217;utilizzo che vorremo fare del nostro server di posta come in figura, il consiglio \u00e8 quello di selezionare &#8220;Internet Site&#8221;<\/p>\n<div id=\"attachment_195\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-postfix.png\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-195\" class=\"wp-image-195\" src=\"http:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-postfix-150x150.png\" alt=\"per proseguire selezionare &quot;Internet Site&quot;\" width=\"400\" height=\"227\" srcset=\"https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-postfix-300x170.png 300w, https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-postfix-768x435.png 768w, https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-postfix.png 914w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-195\" class=\"wp-caption-text\">Opzione di configurazione server postfix<\/p><\/div>\n<p>In seguito ci verr\u00e0 posta un&#8217;altra domanda: il mail name. Nel nostro caso possiamo utilizzare un qualunque nome host, quello suggerito dalla configurazione va pi\u00f9 che bene.<\/p>\n<div id=\"attachment_194\" style=\"width: 379px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-mailname.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-194\" class=\"wp-image-194\" src=\"http:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-mailname-150x150.png\" alt=\"Configurazione mail name\" width=\"369\" height=\"209\" srcset=\"https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-mailname-300x170.png 300w, https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-mailname-768x435.png 768w, https:\/\/www.linuxit.it\/wp-content\/uploads\/2017\/10\/configurazione-mailname.png 914w\" sizes=\"(max-width: 369px) 100vw, 369px\" \/><\/a><p id=\"caption-attachment-194\" class=\"wp-caption-text\">Configurazione mail name del server postfix<\/p><\/div>\n<p>Dopo una breve elaborazione, che dipende soprattutto dalla velocit\u00e0 del vostro server e dalla capacit\u00e0 del vostro collegamento ad internet, avremo il nostro <strong>server Postfix<\/strong> installato e funzionante ma con le impostazioni di default.<\/p>\n<p>A questo punto ci serve configurare il demone di postfix indicandogli in che modo inoltrare le nostre email e soprattutto i parametri di autenticazione al server <strong>SMTP di Google<\/strong>.<\/p>\n<p>Il <strong>file di configurazione di postfix<\/strong> si trova nella cartella \/etc\/postfix e si chiama main.cf. Utilizziamo l&#8217;editor di testo a noi pi\u00f9 comodo ed effettuiamo le modifiche, cerchiamo la direttiva &#8220;relayhost&#8221;, se non \u00e8 presente basta inserire queste stringhe nel file di configurazione :<\/p>\n<blockquote><p>relayhost = [smtp.gmail.com]:587<br \/>\n# Enable SASL authentication<br \/>\nsmtp_sasl_auth_enable = yes<br \/>\n# Disallow methods that allow anonymous authentication<br \/>\nsmtp_sasl_security_options = noanonymous<br \/>\n# Location of sasl_passwd<br \/>\nsmtp_sasl_password_maps = hash:\/etc\/postfix\/sasl_passwd<br \/>\n# Enable STARTTLS encryption<br \/>\nsmtp_tls_security_level = encrypt<br \/>\n# Location of CA certificates<br \/>\nsmtp_tls_CAfile = \/etc\/ssl\/certs\/ca-certificates.crt<\/p><\/blockquote>\n<p>In questo modo abbiamo istruito il nostro server per inoltrare (relay) le mail in uscita all&#8217;host &#8220;<strong>smtp.gmail.com<\/strong>&#8221; sulla <strong>porta 587<\/strong>, e soprattutto che dovr\u00e0 utilizzare il file\u00a0\/etc\/postfix\/sasl_passwd per trovare username e password dell&#8217;host di relay configurato.<\/p>\n<p>Possiamo salvare il file ed andare avanti con la configurazione creando il file dove inserire username e password del nostro <strong>account Gmail<\/strong> da utilizzare per inviare le nostre email.<\/p>\n<p>Creiamo quindi il file\u00a0\/etc\/postfix\/sasl_passwd ed inseriamo al suo interno:<\/p>\n<blockquote><p>[smtp.gmail.com]:587 username@gmail.com:passwordgmail<\/p><\/blockquote>\n<p>Per consentire a postfix di interpretare il file appena creato abbiamo bisogno di eseguire un&#8217;altro comando che legge i parametri dal file sasl_passwd e li converte in un formato loggibile dal <strong>demone di Postfix<\/strong>, il comando in questione \u00e8 postmap:<\/p>\n<blockquote><p>postmap\u00a0\/etc\/postfix\/sasl_passwd<\/p><\/blockquote>\n<p>Questo comando crea nella <strong>cartella root di postfix<\/strong>, un file con il nome &#8220;sasl_passwd.db&#8221;, questo file non \u00e8 leggibile quindi username e password saranno al sicuro, vi consiglio di eliminare il file sasl_passwd che contiene username e password in chiaro per validi motivi di sicurezza.<\/p>\n<p>Non ci resta che riavviare il demone del nostro server di posta inviando il comando da root:<\/p>\n<blockquote><p>\/etc\/init.d\/postfix restart<\/p><\/blockquote>\n<p>Per controllare che sia andato tutto liscio e non abbiamo commesso errori in fase di configurazione, possiamo consultare il log di Postfix con il comando:<\/p>\n<blockquote><p>tail -f \/var\/log\/mail.log<\/p><\/blockquote>\n<p>dovremmo trovare un messaggio simile al seguente che ci informa del correetto riavvio del demone<\/p>\n<blockquote><p>Oct 8 00:12:27 ansible postfix\/master[2645]: terminating on signal 15<br \/>\nOct 8 00:12:28 ansible postfix\/master[2906]: daemon started &#8212; version 2.11.3, configuration \/etc\/postfix<\/p><\/blockquote>\n<p>Adesso che siamo sicuri che la nostra configurazione \u00e8 andata a buon fine possiamo procedere a fare qualche test. Di solito il comando mail lo ritroviamo gi\u00e0 installato nel sistema, io suggerisco di installare il pacchetto\u00a0heirloom-mailx tramite il classico comando:<\/p>\n<blockquote><p>apt-get install heirloom-mailx<\/p><\/blockquote>\n<p>Come al solito dopo una breve elaborazione possiamo iniziare ad utilizzare il comando, ricordo sempre che per tutte le varie opzioni utilizzabili \u00e8 sempre disponibile il manuale tramite il comando mail, di seguito un riassunto dei principali:<\/p>\n<ul>\n<li>-a seguito dal nome del file &#8220;Allega il file alla mail come allegato&#8221;.<\/li>\n<li>-b seguito dall&#8217;indirizzo del destinatario &#8220;Invia la mail in copia carbone ad altri indirizzi, per inserirne pi\u00f9 di uno separarli con la virgola.<\/li>\n<li>-r\u00a0seguito dall&#8217;indirizzo del mittente &#8220;Imposta l&#8217;indirizzo mittente della mail&#8221;<\/li>\n<li>-s Oggetto &#8220;Imposta l&#8217;oggetto della mail&#8221;.<\/li>\n<\/ul>\n<p>Quindi per testare se tutto funziona possiamo inviare il seguente comando, sostituendo ai valori di esempio, gli indirizzi validi:<\/p>\n<blockquote><p>echo &#8220;Testo del corpo della mail&#8221; | mailx -s &#8220;Oggetto della mail&#8221; -r mittente@mail.com destinatario@mail.com<\/p><\/blockquote>\n<p>Diamo adesso uno sguardo al log e vediamo cosa \u00e8 successo, se la mail \u00e8 stata inviata correttamente dobbiamo trovare un messaggio simile al seguente:<\/p>\n<blockquote><p>Oct 8 00:26:13 ansible postfix\/pickup[2911]: A91BABFF6D: uid=0 from=&lt;mittente@mail.com&gt;<br \/>\nOct 8 00:26:13 ansible postfix\/cleanup[2968]: A91BABFF6D: message-id=&lt;59d96295.IB7em9tIouCaLyqd%mittente@mail.com&gt;<br \/>\nOct 8 00:26:13 ansible postfix\/qmgr[2912]: A91BABFF6D: from=&lt;mittente@mail.com&gt;, size=460, nrcpt=1 (queue active)<br \/>\nOct 8 00:26:17 ansible postfix\/smtp[2970]: A91BABFF6D: to=&lt;destinatario@mail.com&gt;, relay=smtp.gmail.com[74.125.206.109]:587, delay=3.5, delays=0.07\/0.08\/1.3\/2, dsn=2.0.0, status=sent (250 2.0.0 OK <a class=\"techextension-click-to-call\" title=\"Click-to-Call 1507418775\">1507418775<\/a> b11sm11968152wrd.91 &#8211; gsmtp)<br \/>\nOct 8 00:26:17 ansible postfix\/qmgr[2912]: A91BABFF6D: removed<\/p><\/blockquote>\n<p>A questo punto possiamo inserire il comando di invio mail nel nostro script per segnalarne la corretta esecuzione ed inviarci il log in modo da tenere sotto controllo le operazioni, di seguito alcuni riferimenti utili all&#8217;argomento:<\/p>\n<ol>\n<li>&#8220;<a href=\"http:\/\/www.postfix.org\">Sito web ufficiale del pacchetto Postfix<\/a>&#8220;<\/li>\n<li>&#8220;<a href=\"https:\/\/www.debian.org\">Sito web ufficiale Debian<\/a>&#8220;<\/li>\n<li>&#8220;<a href=\"http:\/\/heirloom.sourceforge.net\/mailx.html\">Sito web ufficiale Mailx<\/a>&#8220;<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inoltrare le mail da postfix ai server di Google In questa guida vediamo come configurare Postfix per inoltrare le mail inviate dal sistema tramite il server SMTP di google, utilizzando un indirizzo @gmail.com. Capita spesso di creare degli script in bash personalizzati per effettuare delle operazioni di routine come il backup di una cartella, di <a href=\"https:\/\/www.linuxit.it\/?p=172\" rel=\"nofollow\"><span class=\"sr-only\">Leggi di pi\u00f9Postfix relay tramite Google<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"quote","meta":{"footnotes":""},"categories":[4],"tags":[12,11,14,13],"_links":{"self":[{"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/posts\/172"}],"collection":[{"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=172"}],"version-history":[{"count":0,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/posts\/172\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=\/wp\/v2\/media\/201"}],"wp:attachment":[{"href":"https:\/\/www.linuxit.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxit.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}