Я пытаюсь создать список уникальных аргументов для каждого письма, официальная ссылка SMTP api описывает эту функцию довольно кратко здесь .
И API-документы библиотеки SendGrid PHP, которые я использую, также мало помогли:
/** * 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 для части уникальных аргументов заголовка, один на один соответствует массиву значений подстановок и массиву получателей, но к сожалению, это не сработало и привело к тому, что неверная ошибка заголовка API XSMTP вернулась к моей электронной почте.
Если кто-то использовал эту функцию раньше и может кратко проинструктировать меня о том, как правильно ее использовать (возможно, после добавления addUniqueArgument после каждого добавления), это может быть большой помощью для меня.
Я вижу, что вы сначала упоминаете уникальные аргументы, но затем упоминаете подстановки, которые являются совершенно несвязанным вопросом. Уникальные аргументы применимы к вызову API в целом, например, такие могут содержать идентификатор пакета в вашей системе, чтобы вы могли легче сопоставлять события электронной почты с вашими данными. Замены, однако, в основном заменяют строку в письмах, чтобы персонализировать каждое электронное письмо для своего получателя, и это относится к каждому получателю письма вместо вызова API.
Уникальные аргументы Sendgrid
Вам не нужно связываться с заголовками запросов JSON, если вы используете их библиотеку API, просто используйте библиотеку как любой другой объект PHP. Например, если вам нужно задать три переменные, var1
, var2
, var3
то это либо:
$Sendgrid -> setUniqueArguments(array( 'var1' => 'value1', 'var2' => 'value2', 'var3' => 'value3' ));
или это:
$Sendgrid -> addUniqueArgument('var1', 'value1'); $Sendgrid -> addUniqueArgument('var2', 'value2'); $Sendgrid -> addUniqueArgument('var3', 'value3');
Разница заключается в том, что первая опция setUniqueArguments
полностью заменяет любые другие переменные, которые вы добавили ранее, а вторая, addUniqueArgument
, добавляет переменную в существующие.
Подстановки Sendgrid
Предположим, вы используете свою библиотеку API, и у вас есть 2 получателя: bob@example.com и alice @ example com, и вам нужно указать их имя в письме. В этом случае вы используете строку-заполнитель в тексте письма, в основном все, что не будет происходить в обычном режиме. В нашем случае предположим, что это может быть:
Hello <<Name>>
где <<Name>>
является заполнителем для имени получателей. В этом случае вы можете построить вызов API как таковой (я оставляю детали, связанные с содержимым электронной почты и т. Д.):
$Sendgrid -> addTo('bob@example.com'); $Sendgrid -> addTo('alice@example.com'); $Sendgrid -> addSubstitution('<<Name>>', array('Bob', 'Alice'));
Значения в вызове addSubstituion
должны быть в том же порядке, что и список получателей.