php – SendGrid与个人电子邮件的唯一参数

我尝试为每封电子邮件设置一个唯一参数列表,SMTP api的官方参考非常简短地描述了这个功能,here.

我正在使用的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;
  }

所以实际上,我的实现基于明显的逻辑结论,并决定为头的unique-arguments部分创建多维json,与替换值数组一对一,与收件人数组一致,但是遗憾的是,这不起作用,导致无效的XSMTP API标头错误被退回到我的电子邮件中.

如果有人之前使用过这个功能,并且可以简单地指导我如何正确使用它(也许在每个addTo之后调用addUniqueArgument?),对我来说这可能是一个很大的帮助.

解决方法:

我看到你首先提到了独特的论点,但后来你提到了一个完全不相关的替代品.唯一参数作为一个整体应用于API调用,例如,那些可能包含系统中的批处理ID,以便您可以更轻松地将电子邮件事件与数据进行匹配.然而,替换基本上是电子邮件中的字符串替换,以便为其收件人个性化每个电子邮件,并且这些替换适用于电子邮件的每个收件人而不是API调用.

Sendgrid独特的参数

如果您正在使用其API库,则不必使用JSON请求标头,只需将库用作任何其他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调用中的值必须与收件人列表的顺序相同.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...