{"id":2116,"date":"2018-06-04T15:03:29","date_gmt":"2018-06-04T13:03:29","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=2116"},"modified":"2018-06-05T11:09:40","modified_gmt":"2018-06-05T09:09:40","slug":"inviare-email-da-ubuntu-18-04-tramite-mutt-e-nullmailer","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2018\/06\/04\/inviare-email-da-ubuntu-18-04-tramite-mutt-e-nullmailer\/","title":{"rendered":"Inviare email da Ubuntu 18.04 tramite mutt e nullmailer"},"content":{"rendered":"<p>Per poter mandare email anche solo a livello di diagnostica o reportistica \u00e8 possibile sfruttare il programma <em>mutt<\/em> che offre comandi a riga di comando o anche un minimo di GUI in ambito shell<\/p>\n<pre class=\"lang:default decode:true \">sudo apt-get install mutt<\/pre>\n<p>Se avviandolo si ottiene l&#8217;errore &#8220;<em>\/var\/mail\/&lt;utente&gt;: No such file or directory (errno = 2)<\/em>&#8221; basta creare il file che sar\u00e0 utilizzato come archivio<\/p>\n<pre class=\"lang:default decode:true\">sudo touch \/var\/mail\/&lt;utente&gt;\r\nsudo chown &lt;\/utente&gt; \/var\/mail\/&lt;utente&gt;<\/pre>\n<p>Se non abbiamo un SMTP server nostro, se ne pu\u00f2 sfruttare uno esterno tramite un relay<\/p>\n<pre class=\"lang:default decode:true \">sudo apt-get install nullmailer<\/pre>\n<p>In stallazione richieder\u00e0 prima il nome host e poi la stringa di configurazione dell&#8217; SMTP server esterno (nel caso di porta 25 standard):<\/p>\n<pre class=\"lang:default decode:true\">smtp.server.loc smtp --user=&lt;utente&gt; --pass=&lt;password&gt;<\/pre>\n<p>Oppure con cifratura (ad esempio StartTLS):<\/p>\n<pre class=\"lang:default decode:true\">smtp.server.loc smtp --port=587 --starttls --user=&lt;utente&gt; --pass=&lt;password&gt;<\/pre>\n<p>Se il server ha un certificato autoprodotto potrebbe essere necessario aggiungere <em>&#8211;insecure<\/em> alla stringa, nel caso serva modificare in seguito questo parametro si trova in \/etc\/nullmailer\/remotes<\/p>\n<p>Essendoci user e pass in chiaro lasciamo solo l&#8217;accesso come root<\/p>\n<pre class=\"lang:default decode:true\">sudo chown mail.mail \/etc\/nullmailer\/remotes\r\nsudo chmod 640 \/etc\/nullmailer\/remotes<\/pre>\n<p>Se non vogliamo tenere traccia delle mail inviate basta cancellare il file <em>&lt;home&gt;\/sent<\/em><\/p>\n<p>Proviamo a inviare un email tramite la GUI e se funziona si pu\u00f2 sfruttare anche la riga di comando.<\/p>\n<p>Le intestazioni si configurano in <em>&lt;home&gt;\/.muttrc<\/em>:<\/p>\n<pre class=\"lang:default decode:true\">set from = \"utente@domain.loc\"\r\nset realname = \"Nome e Cognome\"<\/pre>\n<p>Per non salvare mai la posta inviata nel file <em>&lt;home&gt;\\sent<\/em> aggiungere &#8220;<em>set copy = no<\/em>&#8221;<\/p>\n<p>Per inviare un email con testo in un file e un allegato:<\/p>\n<pre class=\"lang:default decode:true\">mutt -s \"Test email\" destinatario@domain.loc &lt; messaggio.txt -a allegato.jpg<\/pre>\n<p>Oppure inviando il testo direttamente:<\/p>\n<pre class=\"lang:default decode:true \">echo \"Prova invio email con allegato tramite mutt\" | mutt -s \"Test email\" destinatario@domain.loc -a allegato.jpg<\/pre>\n<p>Per visualizzare gli errori di <em>nullmailer<\/em>:<\/p>\n<pre class=\"lang:default decode:true\">cat \/var\/log\/syslog | grep nullmailer<\/pre>\n<p>Nel caso di molti errori di invio per svuotare la coda:<\/p>\n<pre class=\"lang:default decode:true \">sudo rm \/var\/spool\/nullmailer\/queue\/*<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per poter mandare email anche solo a livello di diagnostica o reportistica \u00e8 possibile sfruttare il programma mutt che offre comandi a riga di comando o anche un minimo di GUI in ambito shell sudo apt-get install mutt Se avviandolo si ottiene l&#8217;errore &#8220;\/var\/mail\/&lt;utente&gt;: No such file or directory (errno = 2)&#8221; basta creare il [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,3,23],"tags":[270,16,8,198,199,5],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/2116"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=2116"}],"version-history":[{"count":7,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/2116\/revisions"}],"predecessor-version":[{"id":2126,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/2116\/revisions\/2126"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=2116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=2116"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=2116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}