我正在尝试在电子邮件的主题中设置我的客户的姓名。
这对我的申请非常重要,从我在SendGrid API 文档 http://sendgrid.com/docs/API_Reference/SMTP_API/substitution_tags.html这是很有可能!。
信息 - 替换标签将在主题行以及电子邮件正文中起作用。
问题是我似乎无法做到这一点。
起初我认为可能是因为我已经在电子邮件正文中使用了 %name% sub,所以我创建了一个新的替换参数名称 %nameSubject%,
然而,这行不通。
我使用以下代码,电子邮件中的其余参数工作得很好:
/**
@description Wrapper method in order to handle possible exception due to programmer\ maintainer errors.
A part of a small wrapper class that I have designed to allow 1-line comfortable use of the the SendGrid and transport classes.
@returns int - 1, unless there is an internal error, or an exception thrown
*/
public function execute(){
if(!class_exists('SendGrid') || !class_exists('SendGrid\Mail')){
throw new exception('Dependency exception SendGrid or SendGrid\Mail are not included');
}
if(!isset($this->mailingList) && empty($this->mailingList) || sizeof($this->mailingList) == 0){
throw new exception('Cannot send an email to an empty set of addresses');
}
if(!isset($this->subject, $this->body) || empty($this->subject) || empty($this->body)){
throw new exception('Cannot send an email without both a subject and a body');
}
$sendgrid = new SendGrid(SENDGRID_USER, SENDGRID_PASSWORD);
// $this->importMailList();
foreach($this->mailingList as $key => $val) {
$this->mail->addTo($key, $val);
}
$this->mail->
setFrom($this->fromMail)->
setSubject($this->subject)->
setText($this->text)->
setHtml($this->body);
if(preg_match('/%name%/', $this->body) && !array_filter($this->mailingList, 'is_int') ){
$this->mail->addSubstitution("%name%", array_values($this->mailingList));
}
return $sendgrid->smtp->send($this->mail);
}
任何帮助深表感谢!。
应为主题或正文单独设置替换标签。尝试这样的事情:
$this->mail->
setFrom($this->fromMail)->
setSubject($this->subject)->addSubstitution("%name%", array("Harry", "Bob"))->
...
您可以将我使用的示例数组替换为您自己的数组值。我们的文档中还有一些显示替换标签的 PHP 代码示例。 (http://sendgrid.com/docs/Code_Examples/php.html#-Using-Substitutions http://sendgrid.com/docs/Code_Examples/php.html#-Using-Substitutions)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)