<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Temporini Matteo &#187; wrapper</title>
	<atom:link href="http://www.temporini.net/category/wrapper/feed" rel="self" type="application/rss+xml" />
	<link>http://www.temporini.net</link>
	<description>It&#039;s time to fix!</description>
	<lastBuildDate>Fri, 27 Jan 2012 23:21:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Wrapper Sendmail</title>
		<link>http://www.temporini.net/wrapper-sendmail</link>
		<comments>http://www.temporini.net/wrapper-sendmail#comments</comments>
		<pubDate>Fri, 23 Nov 2007 16:16:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[demoni]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://www.temporini.net/wrapper-sendmail</guid>
		<description><![CDATA[<p>Problema del giorno&#8230; quante volte capita che qualche script non sicuro (es. form php senza controlli di sicurezza sull&#8217;inserimento dei dati e conseguente invio di un&#8217;email), riempia le code dei nostri server di posta? A me sinceramente molto spesso (si pensi a qualcuno che crea uno script di &#8220;test&#8221; che basta lanciarlo e viene spedita [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Problema del giorno</strong>&#8230; quante volte capita che qualche script non sicuro (es. form php senza controlli di sicurezza sull&#8217;inserimento dei dati e conseguente invio di un&#8217;email), riempia le code dei nostri server di posta? A me sinceramente molto spesso (si pensi a qualcuno che crea uno script di &#8220;test&#8221; che basta lanciarlo e viene spedita un&#8217;email, lo script viene dimenticato li e trovato da qualche bontempone che si diverte a esguirlo centinaia di volte&#8230; voi direte &#8220;ma chi vuoi che lo faccia?!?!?!?&#8221; e io vi rispondo dicendo solo&#8230; &#8220;più di quanti si possa immaginare&#8221;).</p>
<p>Conseguenza di tutto questo sono ore perse a cercare qualche script, sito o altro responsabile del fattaccio, con conseguenti improperi verso ogni genere di essere vivente vi si presenti vicino.</p>
<p><span id="more-103"></span>Grazie ai consigli e all&#8217;aiuto di <strong>Marco Londero</strong>, abbiamo ideato un piccolo wrapper php che genera un log sulla posta che viene inviata trmamite il comando <strong>mail()</strong> di php, e aggiunge un <strong>header</strong> all&#8217;interno dell&#8217;email stessa in grado di permetterci di risalire al log desiderato e riuscire ad identificare meglio l&#8217;origine di un certo problema.</p>
<p>All&#8217;interno di tale log avremo una cosa molto importante, il path dello script che ha generato e inviato l&#8217;email in questione.</p>
<p>Siamo partiti a partire un <a href="http://gregmaclellan.com/blog/sendmail-wrapper/" title="Sendmail Wrapper">wrapper</a> trovato su <a href="http://www.gregmaclellan.com/">groogsblog</a> e tramite semplici modifiche siamo riusciti ad ottenere quel che ci serviva.</p>
<p>Una definizione di <strong>wrapper</strong> (giusto per capire di cosa si parla) potrebbe essere la seguente &#8220;<em>Un <strong><span class="QUOTE">wrapper</span></strong> è uno script di shell che       incorpora una utility o un comando di sistema. Questo evita di       dover digitare una serie di parametri che andrebbero passati       manualmente a quel comando.</em>&#8221;</p>
<p>Vediamo ora come installarlo.</p>
<p>Presupponiamo di utilizzare postfix (di fatto si potrebbe usare qualunqua altro sistema senza problemi),</p>
<p><code>cd /etc/postfix/</code></p>
<p><code>touch sendmail.php</code></p>
<p><code>chmod 775 sendmail.php</code></p>
<p><code>nano sendmail.php</code></p>
<p>A questo punto nel file sendmail.php inseriamo il codice del <a href="http://www.temporini.net/wp-content/uploads/2007/11/sendmailtar.gz" title="Sendmail Wrapper">Wrapper</a>, e salviamo il file.</p>
<p>Modifichiamo olra il file php.ini e permettiamo al wrapper di essere eseguito prima di sendmail (sarà il wrapper stesso dal suo interno a richiamare sendmail al momento opportuno).</p>
<p><code>nano /etc/php.ini</code></p>
<p>sostituiamo il valore di sendmail_path con il seguente</p>
<p>sendmail_path = /etc/postfix/sendmail.php</p>
<p>Prepariamo le directory che conterranno i log che che genererà il nostro simpatico wrapper</p>
<p><code>mkdir /var/log/phpmail<br />
chown root:apache /var/log/phpmail<br />
chmod 770 /var/log/phpmail</code></p>
<p>ed ora non ci resta altro che riavviare apache<br />
<code><br />
/etc/init.d/apache2 restart</code></p>
<p>Date una controllata al file /var/log/httpd/error_log per vedere che sia tutto corretto e aspettate (o create uno script in php per testarlo), ora quando verrà inviata un&#8217;email da uno script in php accadranno due cose</p>
<p>1- nell&#8217;header dell&#8217;email vi sarà un campo nuovo che si chiama X-MsgID e che altro non è che il nome del file in /var/log/phpmail/ che contiene i dati dell&#8217;email inviata dal webserver</p>
<p>2- all&#8217;interno del file relativo all&#8217;header X-MsgID vi sarà un campo che indicherà il path dello script che ha inviato un&#8217;email</p>
<p>Riporto di seguito un esempio del contenuto del file di log di un&#8217;email</p>
<p><em>Body: 574 bytesDate: Fri, 23 Nov 2007 16:35:37 +0100<br />
PWD: /var/www/vhost/XXX.TLD/home/html/phpBB2<br />
Msg ID: ns3.eastitaly.it_20071123163537.4746f3495849d</em></p>
<p><em>Message:<br />
&#8212;&#8212;&#8212;-<br />
To: tusysweelszew@mail.ru<br />
Subject: Welcome to www.</em><em>XXX.TLD</em><em> Forums<br />
Reply-to: info@</em><em>XXX.TLD</em><br />
<em> From: info@</em><em>XXX.TLD</em><br />
<em> Return-Path: info@</em><em>XXX.TLD</em><br />
<em> Message-ID: &lt;aace212218a818186b114bcd1fe00573@www.</em><em>XXX.TLD</em><em>&gt;<br />
MIME-Version: 1.0<br />
Content-type: text/plain; charset=iso-8859-1<br />
Content-transfer-encoding: 8bit<br />
Date: Fri, 23 Nov 2007 16:35:37 +0100<br />
X-Priority: 3<br />
X-MSMail-Priority: Normal<br />
X-Mailer: PHP<br />
X-MimeOLE: Produced By phpBB2<br />
X-MsgID: ns3.eastitaly.it_20071123163537.4746f3495849d<br />
&#8212;&#8212;&#8212;-<br />
Body: 574 bytes</em></p>
<p>Da questo log oltre a tutti i dati tipici di un&#8217;email si può notare la riga</p>
<p><em> PWD: /var/www/vhost/XXX.TLD/home/html/phpBB2</em></p>
<p>che non è altro che il path dello script che ha inviato l&#8217;email, chiaramente sarebbe più efficiente se vi fosse la possibilità di identificare direttamente il nome dello script, ma diciamo che già così gran parte dei problemi si riescono a isolare e identificare in breve tempo.</p>
<p>Un altra eventuali miglioria che si può apportare è di gestire tutto questo anzichè come file separati come un unico file di log, ma lo faremo col tempo e con la voglia come sempre <img src='http://www.temporini.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Saluti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/wrapper-sendmail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

