Azienda | Listino | Assistenza | Rinnova servizi | Webmail | Area Utenti
Tel: 055.3031.2626 - info@hostingsolutions.it Rss Feed Twitter Facebook
Cerca un dominio

Bare Line Feeds

  • Definizione:

    Per Bare LF si intende un carattere ASCII di line feed (LF) non preceduto da un carattere ASCII di carriage return (CR).

    In ASP questo si traduce in un chr(10) non preceduto da chr(13), ed in PHP, Perl, C etc. si traduce in un \n non preceduto da un \r


  • Problema:

    Il nostro server SMTP non accetta i Bare LFs in un messaggio di posta, e nel caso tentaste di inviare dalle vostre pagine un messaggio contenente dei BLFs ricevereste un messaggio di errore.


  • Soluzione:

    Per ASP è sufficiente sostituire ogni chr(10) con chr(13)&chr(10) ed in PHP, Perl, etc. sostituire tutti i \n con \r\n


  • Riferimento:

    http://cr.yp.to/docs/smtplf.html


  • Funzione PHP per la rimozione dei bare line feed

    Per evitare il problema utilizzando php, potete utilizzare questa piccola funzione che converte tutti i bare line feed presenti in una stringa in CRLF.

    function rimuovi_BLF($testo) {
    	$expr = array("/\n/","/\r/" );
    	$testo = preg_replace($expr, "xxLFxx", $testo);
    	$testo = str_replace("xxLFxxxxLFxx", "xxLFxx", $testo);
    	$testo = preg_replace("/xxLFxx/", "\r\n", $testo);
    	return $testo;
    }
    

    Potete applicare questa funzione a ciascun parametro della funzione mail(); prima di passarli alla funzione stessa. Esempio:

    $destinatario = rimuovi_BLF($destinatario);
    $oggetto = rimuovi_BLF($oggetto);
    $messaggio = rimuovi_BLF($messaggio);
    $header_addizionali = rimuovi_BLF($header_addizionali);
    mail($destinatario, $oggetto, $messaggio, $header_addizionali);
    
[ Hosting Solutions | Copyright © 1999 - 2011 Genesys Informatica Srl. P.iva 02002750483 | Privacy | Regolamentazione | Mappa del sito ]