5

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

また、私が使用している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;
  }

実際、私は明白な論理的結論に基づいて実装し、ヘッダーの一意の引数部分に多次元 json を作成し、置換値配列と受信者配列に 1 対 1 で対応させることにしましたが、残念ながら、それは機能せず、無効な XSMTP API ヘッダー エラーがメールに返送されました。

誰かが以前にこの機能を使用したことがあり、それを正しく使用する方法について簡単に説明できる場合 (おそらく、各 addTo の後に addUniqueArgument を呼び出しますか?)、それは私にとって大きな助けになる可能性があります。

4

1 に答える 1

5

最初に一意の引数について言及しているように見えますが、次に、まったく関係のない問題である置換について言及しています。一意の引数は、API 呼び出し全体に適用されます。たとえば、メール イベントとデータをより簡単に照合できるように、システムにバッチ ID が含まれている場合があります。ただし、置換は基本的に、各電子メールをその受信者に合わせてパーソナライズするための電子メールの文字列置換であり、それらは API 呼び出しの代わりに電子メールの各受信者に適用されます。

Sendgrid 固有の引数

API ライブラリを使用している場合は、JSON 要求ヘッダーをいじる必要はありません。ライブラリを他の PHP オブジェクトとして使用するだけです。たとえば、 、 の 3 つの変数を設定する必要がある場合は、次var1var2いずれvar3かになります。

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

またはこれ:

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

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

Sendgrid 置換

API ライブラリを使用していて、bob@example.com と alice@example com の 2 人の受信者がいて、メールにその名前を記載する必要があるとします。この場合、メールの本文にプレースホルダー文字列を使用します。これは基本的に、通常では発生しないものです。私たちの場合、それが次のようになると仮定しましょう:

Hello <<Name>>

<<Name>>受信者名のプレースホルダーです。この場合、API 呼び出しを次のように作成できます (電子メールの内容などに関連する部分は省略しています)。

$Sendgrid -> addTo('bob@example.com');
$Sendgrid -> addTo('alice@example.com');
$Sendgrid -> addSubstitution('<<Name>>', array('Bob', 'Alice'));

呼び出しの値はaddSubstituion、受信者リストと同じ順序である必要があります。

于 2013-05-19T21:36:51.377 に答える