2017-01-16 9 views
0

送信する前にいくつかのタグをメールに設定したいと思います。テンプレートやデータなどを用意しましたが、私のメールにタグを付けるために郵便サービスプロバイダ(郵便銃など)のフィールドをどのように定義できますか?Laravel Mailタグ付け

$messageData = array(
     'email' => '[email protected]', 
     'name' => 'My Client Name', 
     'subject' => 'My subject', 
     'tags' => array('my_tag1', 'my_tag1') 
    ); 
    Mail::queue($emailTemplate, ['data' => $templateBody], function ($message) use ($messageData) { 
     $message->to($messageData['email'], $messageData['name']) 
      ->subject($messageData['subject']); 
      //->embedSomehow('o:tag', $messageData['tags']) <- there is the problem 
    }); 
+0

mailgunタグはベンダー固有の機能です。この方法で使いたいなら、[Mail :: Message](https://github.com/illuminate/mail/blob/master/Message.php)を拡張してこれらのタグを運んで使用する必要がありますAPIリクエストをビルドするときにトランスポートに格納されます。 –

+0

@AlexBlexメッセージ本文に追加するために入力できる配列はありませんか? – Aleksandar

答えて

2

このフィールドo:tag(および他の多くの)部分をヘッダに行く:ここで私はこれまで持っているものです。 (キューイング)メールを送信しながら、ヘッダの値を設定するには、次の操作を行います。あなたはほとんどあなたは、ベンダー固有のフィールドでやりたいことができ

$messageData = array(
    'email' => '[email protected]', 
    'name' => 'My Client Name', 
    'subject' => 'My subject', 
    'tags' => array('my_tag1', 'my_tag1') 
); 
Mail::queue($emailTemplate, ['data' => $templateBody], function ($message) use ($messageData) { 
    $message->to($messageData['email'], $messageData['name']) 
     ->subject($messageData['subject']); 

    $swiftMessage = $message->getSwiftMessage(); 

    $headers = $swiftMessage->getHeaders(); 
    $tags = json_encode(array('o:tag' => $messageData['tags'])); 
    $headers->addTextHeader('X-MSYS-API', $tags); // X-MSYS-API is header for SparkPostMail 
}); 

この道を。