ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-05-20 11:18:29  阅读:308  来源: 互联网

标签: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调用中的值必须与收件人列表的顺序相同.

标签:php,sendgrid
来源: https://codeday.me/bug/20190520/1142477.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有