Problème d’entêtes des mails sous PHP 5.3.0/5.3.1 pour certains serveurs de mail

Publié le Mis à jour le

J’ai eu récemment un problème avec les emails envoyés depuis ma plateforme sous TYPO3.
Peu importe la méthode utilisée, avec ou sans classe t3lib_htmlmail, les entêtes étaient retravaillées sous certains serveurs mail. En fait, le from, message-id, la date apparaissaient dans le corp du mail.

Exemple :

Return-Path: <web@email.net>
Delivery-Date: Tue, 08 Dec 2009 12:10:35 +0100
Received: from vaio (###################)
    by mx.kundenserver.de (node=mxeu3) with ESMTP (Nemesis)
    id 0M5tuf-1O2dbG1acT-00yQyo for email@email.fr; Tue, 08 Dec 2009 12:10:35 +0100
Received: by vaio (Postfix, from userid 1001)
    id 94C4662A; Tue,  8 Dec 2009 12:10:35 +0100 (CET)
To: email@email.fr
Subject: Test HTML email
X-PHP-Originating-Script: 0:class.tx_extension_pi2.php
Message-Id: <0M5tuf-1O2dbG1acT-00yQyo@mx.kundenserver.de>
Date: Tue, 08 Dec 2009 12:10:35 +0100
X-PhishingScore:   0
    tests=
X-SpamScore: 0.1
    tests= RDNS_DYNAMIC
Envelope-To: email@email.fr

MIME-Version: 1.0
From: email2@email.fr
Content-Type: text/html; charset="iso-8859-1"
Message-Id: <20091208111035.94C4662A@vaio>
Date: Tue,  8 Dec 2009 12:10:35 +0100 (CET)

X-Priority: 1 (Higuest)
X-MSMail-Priority: High
Importance: High
Return-Path: email2@email.fr

<html><body><p>This is <span style="color: red;">HTML</span> email.</p></body></html>

Après pas mal d’investigations, il s’est avéré que le problème était lié à l’incorporation automatique de la ligne "X-PHP-Originating-Script".
Sous certains serveurs, elle pose problème et on retrouve un saut de ligne dans les entêtes, ce qui fait qu’une partie des entêtes peuvent se retrouver dans le corps du mail. De plus, elle n’apporte strictement rien du tout !

C’est ce problème Bug mail.add_x_header qui m’a aiguillé.

La solution a été de désactivé l’ajout de la ligne "X-PHP-Originating-Script" en basculant mail.add_x_header de On à Off. Depuis, plus de problème !

Ressource : http://php.net/manual/fr/mail.configuration.php

Publicités