Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/w41258/domains/chiappucci.it/public_html/ServerScript/ban-ip/class.BanIp.php on line 15
Sendmail | Guido Chiappucci's Blog

Guido Chiappucci's Blog

Archive for the ‘Sendmail’ tag

Sendmail: X-Authentication-Warning

without comments

Utilizzando Sendmail per l’invio di messaggi di posta elettronica da php può succedere di trovare tra gli header il messaggio
X-Authentication-Warning: … ,
questo dipende dal fatto che il nostro Mail Server non conosce l’utente che sta inviando i messaggi, ovvero l’utente del nostro server web.

Per risolvere la questione bisogna editare il file sendmail.cf ed aggiungere l’utente del nostro Web Server come Trusted Users inserendo la stringa
Tapache
nel caso apache sia il nome utente corretto.

Se utilizzate Webmin la cosa è ancora più semplice, bisogna spostarsi nella sezione Server->Sendmail Mail Server->Trusted Users ed aggiungere il nome utente del nostro Web Server.

Al termine delle operazioni sarà necessario riavviare Sendmail.

Written by Guido

novembre 13th, 2009 at 1:30 pm

Posted in Linux,Sendmail

Tagged with ,

PHP: mail() e punti esclamativi

without comments

Oggi inviando email con la funzione mail() di php, per la prima volta, mi sono trovato di fronte a dei punti esclamativi (!) inseriti ad intervalli regolari all’interno del testo della mail, allora mi sono documentato ed ho scoperto che  è un limite fisico di Sendmail: una riga non può superare 990 caratteri, se questo avviene, viene interrotta con l’inserimento di un carattere di a capo (\n) e un punto esclamativo.
Per risolvere il problema ho passato alla funzione mail() il testo del messaggio codificato in base 64, base64_encode(), ed inserito nell’header del messaggio la stringa “Content-Transfer-Encoding: base64″.

Ecco un piccolo esempio:

1
2
3
<?php
mail($to,$subject,base64_encode($message),"From:<".$from.">\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nContent-Transfer-Encoding: base64");
?>

In questa maniera si risolve il problema ma mi è capitato che alcuni client di posta come Libero e Gmail non vedano il testo della mail.
In conclusione, facendo riferimento allo script sopra riportato, consiglio di formattare la stringa $message passata alla funzione mail() inserendo interruzioni di riga (\n), dove è possibile, in maniera da non superare 990 caratteri. Operando in questo modo il problema non si presenta.

Link utile: http://bugs.php.net/bug.php?id=13044

Written by Guido

giugno 30th, 2008 at 5:28 pm

Posted in PHP

Tagged with , , ,