web-dev-qa-db-fra.com

Ajout d'un en-tête SMTP au message envoyé avec JMail

J'utilise un fournisseur de courrier électronique (sparkpost) pour envoyer des messages à partir de mon compte Joomla! site Internet. Certains courriers sont des courriels marketing, d'autres sont des courriels transactionnels.

Le paramètre de courrier électronique par défaut dans sparkpost est "marketing". Il existe une option pour remplacer ceci: ajouter un en-tête SMTP à l'e-mail indiquant que l'e-mail est transactionnel.

J'envoie un courrier avec la classe JMail. J'aimerais ajouter cet en-tête d'étoile supplémentaire, appelé X-MSYS-API, aux courriers électroniques, qui peuvent contenir des paramètres en tant que données JSON.

L'option à ajouter à l'en-tête est option.transactional: false

X-MSYS-API: {
  "campaign_id": "my_campaign",
  "metadata" : {
    "has_pets": true,
    "pet_name": "Spot"
  },
  "cc": [
    { "email": "[email protected]", "name": "CC 1" },
    { "email": "[email protected]", "name": "CC 2" }
  ],
  "bcc": [
    { "email": "[email protected]", "name": "BCC 1" }
    { "email": "[email protected]", "name": "BCC 2" }
  ],
  "archive": [
    { "email": "[email protected]", "name": "Archive 1" }
    { "email": "[email protected]", "name": "Archive 2" }
  ],
  "tags": [
    "cat",
    "dog"
  ],
  "options" : {
    "open_tracking": false,
    "click_tracking": false,
    "transactional": false,
    "sandbox": false,
    "skip_suppression": false,
    "ip_pool": "sp_shared",
    "inline_css": false
  }
}

JMail prend-il en charge l’ajout d’un en-tête SMTP?

1
Wim de Ruijter

Ah, je l'ai trouvé: AddCustomHeader (). La sortie ressemble à ceci:

$body = "Some content";
$mail = JFactory::getMailer();
$mail->addRecipient("[email protected]");
$mail->setBody($body);
$mail->setSender(array("[email protected]", "John Doe"));
$mail->setSubject("My Subject");
$data = array(
"options" => array("transactional" => "true")
);
$options = json_encode( $data );
$mail->AddCustomHeader("X-MSYS-API", $options);
$mail->Send(); 
2
Wim de Ruijter