{"id":65,"date":"2012-01-10T20:24:05","date_gmt":"2012-01-10T19:24:05","guid":{"rendered":"http:\/\/www.enricosaviano.it\/blog\/?p=65"},"modified":"2012-01-10T20:24:05","modified_gmt":"2012-01-10T19:24:05","slug":"inviare-email-da-shell-con-file-allegati","status":"publish","type":"post","link":"https:\/\/www.enricosaviano.it\/blog\/2012\/01\/10\/inviare-email-da-shell-con-file-allegati\/","title":{"rendered":"Inviare email da shell con file allegati"},"content":{"rendered":"<p>Molti programmatori gi\u00e0 sanno com&#8217;\u00e8 facile inviare email da shell. Una semplice invocazione al comando &#8220;<em>mail<\/em>&#8221; con il destinatario passato come parametro, gli invier\u00e0 tutti i dati letti dallo standard input.<\/p>\n<blockquote>\n<pre>$ mail giovanni@emailprova.it &lt; \/tmp\/testo.txt\r\n$ echo \"Ci vediamo questa sera?\" | mail milena@emailprova.it<\/pre>\n<\/blockquote>\n<p>Il comando mail accetta anche altri parametri:<\/p>\n<ul>\n<li> <strong>-b bcc-addr<\/strong> <em>Invia l&#8217;email in copia carbone nascosta agli indirizzi specificati.<\/em><\/li>\n<li><strong>-c cc-addr<\/strong> <em>Invia l&#8217;email in copia carbone agli indirizzi specificati.<\/em><\/li>\n<li><strong>-s subject<\/strong> <em>Specifica l&#8217;oggetto dell&#8217;email.<\/em><\/li>\n<\/ul>\n<p>Ad esempio:<span id=\"more-117\"><\/span><\/p>\n<blockquote>\n<pre>$ echo \"andiamo fuori per una pizza?\" | mail \\\r\n -c \"marco@emailtest.it, franco@emailtest.it\" \\\r\n -s \"Serata pizza\" nicola@emailtest.it<\/pre>\n<\/blockquote>\n<p>A volte per\u00f2, nasce la necessit\u00e0 di inviare uno o pi\u00f9 allegati, che non sono semplice testo, ma immagini, o file binari in generale.<br \/>\nVolendo usare il comando &#8220;mail&#8221;, sarebbe necessario codificare questi file secondo lo standard MIME, preparare una email testuale ed inviarla.<\/p>\n<p>A venirci in aiuto, per\u00f2, c&#8217;\u00e8 il programma &#8220;<em>mutt<\/em>&#8220;.<\/p>\n<p>Mutt \u00e8 un client email, interattivo, orientato al testo, che all&#8217;occorrenza diventa un utilissimo strumento da riga di comando, per inviare email con allegati.<\/p>\n<p>Ad esempio:<\/p>\n<blockquote>\n<pre>echo \"Ecco la canzone che mi chiedevi.\" | mutt \\\r\n-a \"canzone.mp3\" \\\r\n-s \"Canzone\" marco@emailtest.it<\/pre>\n<\/blockquote>\n<p>In questo esempio ci sono tutte le parti pi\u00f9 importanti di una email:<\/p>\n<ul>\n<li>L&#8217;<strong>oggetto<\/strong>, passato dall&#8217;opzione <em>-s<\/em>.<\/li>\n<li>Il <strong>corpo principale<\/strong>, letto dallo standard input.<\/li>\n<li>Il <strong>destinatario <\/strong>(marco@emailtest.it).<\/li>\n<li>L&#8217;<strong>allegato<\/strong>, specificato dall&#8217;opzione <em>-a<\/em>.<\/li>\n<\/ul>\n<p>Se, infine, non si vuole specificare nessun testo \u00e8 possibile passare una riga vuota:<\/p>\n<blockquote>\n<pre>echo | mutt -a \"\/tmp\/backup.tar.gz\" \\\r\n-s \"Backup\" sysadmin@serveremail.com<\/pre>\n<\/blockquote>\n<p>O \/dev\/null:<\/p>\n<blockquote>\n<pre>mutt -a \"\/tmp\/backup.tar.gz\" -s \"Backup\" \\\r\nsysadmin@serveremail.com &lt; \/dev\/null<\/pre>\n<\/blockquote>\n<p>\u00c9 possibile scaricare mutt all&#8217;indirizzo <a href=\"http:\/\/www.mutt.org\/\">http:\/\/www.mutt.org\/<\/a>, questo programma \u00e8 disponibile per una enorme quantit\u00e0 di dialetti unix \/ linux e per Microsoft Windows.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Molti programmatori gi\u00e0 sanno com&#8217;\u00e8 facile inviare email da shell. Una semplice invocazione al comando &#8220;mail&#8221; con il destinatario passato come parametro, gli invier\u00e0 tutti i dati letti dallo standard input. $ mail giovanni@emailprova.it &lt; \/tmp\/testo.txt $ echo &#8220;Ci vediamo questa sera?&#8221; | mail milena@emailprova.it Il comando mail accetta anche altri parametri: -b bcc-addr Invia [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[11,29,3,10,12,30],"_links":{"self":[{"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/posts\/65"}],"collection":[{"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":1,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/posts\/65\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enricosaviano.it\/blog\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}