<?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>gablog &#187; newsletter</title>
	<atom:link href="http://gabo.homelinux.com/tag/newsletter/feed/" rel="self" type="application/rss+xml" />
	<link>http://gabo.homelinux.com</link>
	<description>Fino ad ora ho avuto un sito brutto. Ora ho un blog.</description>
	<lastBuildDate>Fri, 13 Nov 2009 14:29:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>phplist e le immagini incluse nei messaggi</title>
		<link>http://gabo.homelinux.com/2009/04/phplist-embedding-images/</link>
		<comments>http://gabo.homelinux.com/2009/04/phplist-embedding-images/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 16:30:39 +0000</pubDate>
		<dc:creator>gabo</dc:creator>
				<category><![CDATA[programmazione]]></category>
		<category><![CDATA[newsletter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phplist]]></category>

		<guid isPermaLink="false">http://gabo.homelinux.com/?p=292</guid>
		<description><![CDATA[Dalla versione 2.10.8 di phplist (o forse qualcuna prima), vi è la possibilità di inserire immagini all'interno delle nostre mailing, senza dover ricorrere al link esterno (che l'odioso outlook e altri MUA) visualizzano come se si trattasse di errori (per l'utente di medio-basso livello). ]]></description>
			<content:encoded><![CDATA[<p>Dalla versione 2.10.8 di phplist (o forse qualcuna prima), vi è la possibilità di inserire immagini all'interno delle nostre mailing, senza dover ricorrere al link esterno (che l'odioso outlook e altri MUA) visualizzano come se si trattasse di errori (per l'utente di medio-basso livello). Basta aggiungere al file di configurazione </p>

<pre class="brush: php;">
# Aggiunta di Gabo per permettere di inserire le immagini nel corpo del messaggio
define(&quot;EMBEDUPLOADIMAGES&quot;,1);
</pre>

<p>Il problema è che non mi funzionava. Non c'era verso. Allora, armato di santa pazienza, ho messo mano al codice ed ho cercato di capire il motivo. Il problema sta nel fatto che uploadando le immagini, mediante l'FCKEditor, non si possono usare sottodirectory a quella specificata mediante</p>

<pre class="brush: php;">
# If you want to upload images to the FCKeditor, you need to specify the location
# of the directory where the images go. This needs to be writable by the webserver,
# and it needs to be in your public document (website) area
# the directory is relative to the root of PHPlist as set above
# This is a potential security risk, so read README.security for more information
define(&quot;FCKIMAGES_DIR&quot;,&quot;uploadimages&quot;);
</pre>

<p>Dato che io amo le sottodirectory, ma soprattutto perchè gli utenti non avrebbero mai capito il motivo di non poter usare le suddette, ho messo mano al codice ed ho modificato le due funzioni preposte all'arduo compito: filesystem_image_exists e get_filesystem_image, entrambe presenti nel file admin/class.phplistmailer.php</p>
<p>Come prima cosa, però, ho aggiunto anche questa riga al file di configurazione, in modo da poter includere le immagini anche quando si spedisce tramite cronjob e PHP-cli:</p>

<pre class="brush: php;">
//ADDED BY GABO
$phplistRoot = '/home/mysite/public_html';
//END ADDED BY GABO
</pre>

<p>Ecco le funzioni modificate:</p>

<pre class="brush: php;">
## addition for filesystem images - MODIFYED BY GABO
    function filesystem_image_exists($filename) {
      ##  find the image referenced and see if it's on the server

      $elements = parse_url($filename);
      $localfile = basename($elements['path']);

      // search for subdirectory
      $basePath = $GLOBALS['phplistRoot'].$GLOBALS['pageroot'].'/'.FCKIMAGES_DIR;
      $dir = substr($elements['path'],
                    strpos($elements['path'],FCKIMAGES_DIR)+strlen(FCKIMAGES_DIR),
                    strlen($elements['path']) -
                       strpos($elements['path'],FCKIMAGES_DIR) -
                       strlen(FCKIMAGES_DIR)-strlen($localfile));

      return is_file($basePath.$dir.$localfile);
    }

    function get_filesystem_image($filename) {
      ## get the image contents
      $elements = parse_url($filename);
      $localfile = basename($elements['path']);

      $basePath = $GLOBALS['phplistRoot'].$GLOBALS['pageroot'].'/'.FCKIMAGES_DIR;
      $dir = substr($elements['path'],
                    strpos($elements['path'],FCKIMAGES_DIR)+strlen(FCKIMAGES_DIR),
                    strlen($elements['path']) -
                       strpos($elements['path'],FCKIMAGES_DIR) -
                       strlen(FCKIMAGES_DIR)-strlen($localfile));

      if (is_file($basePath.$dir.$localfile)) {
        return base64_encode( file_get_contents($basePath.$dir.$localfile) );
      }
      return 0;
    }
    ## end addition - MODIFYED BY GABO
</pre>

<p>Et voilà, le immagini sono servite. Che poi mandare 6000 email che pesano 500kb sia decisamente peggio di mandarne 6000 che pesano 20Kb è un altro discorso, ma con il management non si discute <img src='http://gabo.homelinux.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://gabo.homelinux.com/2009/04/phplist-embedding-images/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
