2013-05-19 10 views
5

各メールごとに一意の引数のリストを設定しようとしていますが、SMTP APIの公式リファレンスではこの機能について非常に簡単に説明しています。here個別のメールでSendGrid独自の引数

そして、私が使用していますSendGrid PHPライブラリのAPIドキュメントもあまり助けにはならなかった。だから、実際には、私は明らかに論理的な結論に私の実装をベースとし、作成することを決めた

/** 
    * setUniqueArguments 
    * Set a list of unique arguments, to be used for tracking purposes 
    * @param array $key_value_pairs - list of unique arguments 
    */ 
    public function setUniqueArguments(array $key_value_pairs) 
    { 
    $this->header_list['unique_args'] = $key_value_pairs; 
    return $this; 
    } 

    /** 
    * addUniqueArgument 
    * Set a key/value pair of unique arguments, to be used for tracking purposes 
    * @param string $key - key 
    * @param string $value - value 
    */ 
    public function addUniqueArgument($key, $value) 
    { 
    $this->header_list['unique_args'][$key] = $value; 
    return $this; 
    } 

残念ながら、それはうまくいかず、無効なXSMTP APIヘッダーエラーが発生しました。ヘッダーのunique-arguments部分の多次元jsonは、代入値配列と受信者配列に1対1で対応しています私のメールに返送。

誰もが以前この機能を使用していて、正しく使用する方法を簡単に教えてもらえます(おそらく、各addToの後にaddUniqueArgumentを呼び出します)。

+0

電子メールに任意の数のヘッダーを設定することができますが、なぜ重要な質問ですか? –

+0

文書をより良くするためのコンセンサスが本当にあるはずです。 –

答えて

5

私はあなたが最初にユニークな議論を言及していることを知っていますが、あなたは完全に無関係の置換であると言及しています。独自の引数はAPI呼び出し全体に適用されます。たとえば、電子メールイベントをデータに簡単に一致させるために、バッチIDをシステムに含めることができます。しかし、置換は、基本的に、電子メールの文字列置換であり、受信者ごとに電子メールをパーソナライズし、API呼び出しの代わりに電子メールの各受信者に適用します。

Sendgridユニークな引数

あなたはそれらのAPIライブラリを使用している場合は、単に他のPHPオブジェクトとしてライブラリを使用し、JSONリクエストヘッダを台無しにする必要はありません。

$Sendgrid -> setUniqueArguments(array(
    'var1' => 'value1', 
    'var2' => 'value2', 
    'var3' => 'value3' 
)); 

または本:たとえば、あなたはそれがこのいずれかだ三つの変数、var1var2var3を設定する必要がある場合

$Sendgrid -> addUniqueArgument('var1', 'value1'); 
$Sendgrid -> addUniqueArgument('var2', 'value2'); 
$Sendgrid -> addUniqueArgument('var3', 'value3'); 

最初のオプションsetUniqueArgumentsが完全に他の変数を置き換えることであることの違い前に追加したものの、2番目のものはaddUniqueArgumentです。既存のものに変数を追加します。

Sendgrid置換

は、あなたが彼らのAPIライブラリを使用していて、たとえばコム@ 2、受信者、[email protected]とアリスを持っている、とあなたは電子メールで自分の名前を言及する必要があるとしましょう。この場合、電子メールの本文にプレースホルダ文字列を使用します。通常、通常は発生しないものです。 <<Name>>は、受信者の名前のプレースホルダーです

Hello <<Name>> 

:私たちのケースでは、のは、それができると仮定してみましょう。受信者と同じ順序でなければなりませんaddSubstituionコールに

$Sendgrid -> addTo('[email protected]'); 
$Sendgrid -> addTo('[email protected]'); 
$Sendgrid -> addSubstitution('<<Name>>', array('Bob', 'Alice')); 

値:この場合、あなたは(私は電子メールの内容に関連した部品などを残している)のようなAPI呼び出しを構築することができますリスト。

+2

これは、公式のSendGridの答えが反映されているということに着目しています。回答ありがとうございます! – Swift

関連する問題