Annonce

#1 2014-07-30 22:52:55

christov
Membre
Inscription : 2014-07-30
Messages : 1

Ajouter un tag dans le header du mail

Bonjour,

J'utilise Wanewsletter 2.3.3 avec le serveur smtp de mailjet.
Afin de regrouper tous les mails, envoyer au sein d'une même campagne, au niveau des statistiques de mailjet, il faut ajouter le tag X-Mailjet-Campaign:"une valeur propre à chaque campagne" dans le header du mail.
J'ai chercher sans succès comment faire, pouvez-vous m'aider à trouver la solution ?

Merci beaucoup pour cette outil fort bien fait.

Hors ligne

#2 2014-08-02 13:35:48

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Ajouter un tag dans le header du mail

Bonjour,

Désolé pour le retard.

Ce serait une fonctionnalité intéressante, à laquelle je n'avais pas songé à l'époque où je développais activement wanewsletter.

Une solution brut de décoffrage serait d'avoir un bloc comme tel en haut des message rédigés sur la page d'envoi :

X-Header1: texte
X-Header2: texte
...

le texte de la lettre d'information

Puis lors de la préparation à l'envoi (includes/engine_send.php), décomposer le texte reçu avec d'un côté le bloc des entêtes personnalisés, et de l'autre, le texte de la lettre d'information, et transmettre les entêtes d'emails à la classe d'envoi d'emails (wamailer).

Je vais voir ce que je peux faire (je n'ai pas touché au code de wanewsletter depuis un bon moment)


PHP et MySQL, un duo gagnant !

Hors ligne

#3 2014-08-13 22:04:05

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Ajouter un tag dans le header du mail

Dans le fichier includes/engine_send.php, vers la ligne 313 :

if( count($abo_address) > 0 || ($logdata['log_status'] != STATUS_STANDBY && count($supp_address) > 0) )

Ajoutez ce bloc juste avant :

	foreach( array(FORMAT_TEXTE, FORMAT_HTML) as $format ) {
		$lines = preg_split("/\r?\n/", $body[$format]);
		foreach( $lines as &$line ) {
			if( preg_match('/^(X-[\x21-\x39\x3B-\x7E]+):(.+?)$/', $line, $m) ) {
				$mailer->additionnal_header($m[1], $m[2]);
				$line = '';
			}
			else {
				break;
			}
		}
		$body[$format] = implode("\r\n", $lines);
	}
	

Les entêtes doivent être de la forme X- et le texte rédigé ainsi :

X-Header1: ...
X-Header2: ...

Le texte de la lettre d'information


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums