web-dev-qa-db-ja.com

JMailで送信されたメッセージにSMTPヘッダーを追加する

Joomlaからメールを送信するために電子メールプロバイダー(sparkpost)を使用しています!ウェブサイト。一部のメールはマーケティング用メールであり、その他はトランザクション用メールです。

Sparkpostのデフォルトの電子メール設定は「マーケティング」です。これを無効にするオプションがあります。電子メールがトランザクションであることを示すSMTPヘッダーを電子メールに追加します。

JMailクラスでメールを送信しています。 X-MSYS-APIという名前のこの追加のsparkpostヘッダーを電子メールに追加します。これには、JSONデータとしてパラメーターを含めることができます。

ヘッダーに追加するオプションは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はSMTPヘッダーの追加をサポートしていますか?

1
Wim de Ruijter

ああ、見つけました:AddCustomHeader()。出力は次のようになります。

$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