发送前,PHP替换html电子邮件变量中的令牌
我有一封电子邮件发送给我网站的订户。我通过从我的数据库中获取订户列表,并通过数组循环,一次发送一封电子邮件来实现这一点。。。我知道有一种方法可以一次发送所有信息,但这就是我为什么这样做的原因,以及我需要帮助的地方 HTML电子邮件包含2个令牌:发送前,PHP替换html电子邮件变量中的令牌,php,token,Php,Token,我有一封电子邮件发送给我网站的订户。我通过从我的数据库中获取订户列表,并通过数组循环,一次发送一封电子邮件来实现这一点。。。我知道有一种方法可以一次发送所有信息,但这就是我为什么这样做的原因,以及我需要帮助的地方 HTML电子邮件包含2个令牌: {name}和{date} 我需要做的是在HTML电子邮件中插入日期,替换{date}标记,并为每个电子邮件发送插入名称,替换{name}(因为名称总是不同) 这就是我所拥有的: $result = $wpdb->get_resul
{name}
和{date}
我需要做的是在HTML电子邮件中插入日期,替换{date}
标记,并为每个电子邮件发送插入名称,替换{name}
(因为名称总是不同)
这就是我所拥有的:
$result = $wpdb->get_results( "SELECT * FROM wp_newsletter WHERE `id` IN ( $userIds )");
for($i = 0, $size = sizeof($result); $i < $size; ++$i){
add_filter('wp_mail_content_type',create_function('', 'return "text/html";'));
$to .= $result[$i]->name.'<'.$result[$i]->email.'>';
$mail = wp_mail( $to, $subject , $message, $headers);
}
$result=$wpdb->get_results(“从wp_新闻稿中选择*,其中,$userIds中的'id');
对于($i=0,$size=sizeof($result);$i<$size;++$i){
添加过滤器('wp_邮件内容类型',创建函数('','return“text/html”);
$to.=$result[$i]->name.';
$mail=wp_mail($to、$subject、$message、$headers);
}
正如您在上面看到的,我从数据库中得到了两个变量:
$result[$i]->name
$result[$i]->电子邮件
$message
是HTML电子邮件正文,其中有两个需要替换的标记
所以。。。。对于循环和发送,一切都按预期进行。我只需要一些帮助,了解如何为{name}
和{date}
替换令牌
我们将非常感谢您的帮助
$message = str_replace('{name}',$result[$i]->name,$message);
$message = str_replace('{date}',date('Y/m/d H:i:s'),$message);
这可以通过PHP的
str_replace
函数轻松实现
请注意,如果您知道只有一个{name}
和/或{date}
实例,则可以将第四个参数$count
传递给stru replace
,并在替换第一个匹配项后退出
干杯谢谢@zerkms,非常感谢OK@疯子。。我有一个问题,它发送的所有电子邮件中只有第一个名字的循环。有什么想法吗?当它再次循环时,我发现它有第一个名称实例,没有loger标记。无需。。我这样做:
for($I=0,$size=sizeof($result);$I<$size;++$I){$newMessage=$message;$newMessage=str_replace('{name}',$result[$I]>name,$newMessage);$newMessage=str replace('{date}',date fj,Y'),$newMessage添加过滤器('wp_-mail_-content_-type',create_-function(''return text/html')));$to.=$result[$I]->名称。“”;$mail=wp_mail($to、$subject、$newMessage、$headers);
str_replace('{name}',$result[$i]->name);
str_replace('{date}',date('Y/m/d H:i:s'));
...
$message = str_replace('{name}', $result[$i]->name, $message);
$message = str_replace('{date}', date('Y/m/d H:i:s'), $message); // Or your preferred date format
$mail = wp_mail( $to, $subject , $message, $headers);