Drupal, simplenews e il problema del Return-Path

I server di posta Unix/Linux, come postfix e sendmail, sovrascrivono l'header 'Return-Path' inviato dalla funzione mail() di PHP, utilizzando l'indirizzo e-mail con il nome dell'utente sotto il quale viene eseguito il web server Apache. Se, ad esempio, il web server è eseguito da un utente il cui nome è apache ed il nome del server su cui è ospitato è webserver.example.com, allora l'indirizzo email utilizzato dal mail server per il Return-Path sarà, apache@webserver.example.com, indipendentemente da ciò che può essere passato alla funzione mail().

Questa sovrascrittura fa si che le bounce mail, ossia le mail di ritorno generate da eventuali errori di consegna dei messaggi, vengano inviate all'indirizzo suddetto.

Per ovviare a tale problema, si può utilizzare un parametro aggiuntivo della funziona mail(), esattamente il quinto parametro, passando a quest'ultima l' opzione -f seguita dall'indirizzo di email al quale vogliono essere recapitate le mail di ritorno, ossia il Return-Path reale.

Questo approccio è usato da modulo Drupal Return-Path, sovrascrivendo funzione drupal_mail, e funziona correttamente.

Il modulo Mime Mail, però, non utilizza la funzione drupal_mail per l'invio di mail, ma utilizza un proprio mail engine interno che, a sua volta, utillizza direttamente la funzione mail() di PHP.

In particolare il modulo Mime Mail è utilizzato dal modulo simplenews, il gestore delle newsletter di Drupal, per l'invio dei messaggi in formato HTML.

Fortunatamente Mime Mail fornisce la possibilità di utilizzare un mail engine fornito da un altro modulo. Il modulo qui proposto si avvale di questa caratteristica di Mime Mail ed implementa un mail engine alternativo proprio per Mime Mail. Tale mail engine aggiunge l' opzione -f al quinto parametro della funzione PHP mail(), risolvendo il problema anche con Mime Mail.

AnteprimaAllegatoDimensione
mimemailengine-6.x-1.1.zip7.26 KB