Sendmail: X-Authentication-Warning

| novembre 13th, 2009

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.

PHP: mail() e punti esclamativi

| giugno 30th, 2008

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