首先,我知道Mandrill有自己的方式来处理取消订阅,这是"Adding a link with the unsubscribe merge tag" . 但是它会将未订阅的用户存储在帐户中,并且如果向该收件人发送简报和通知,则会生成 rejection .
所以我有这个代码部分,它与foreach循环分别发送给每个收件人并分别发送每封邮件:
foreach($subscribers as $subscribersRow){
$to = $subscribersRow['usr_email'];
$message .= '
<a href="'.site_url('unsubscribe').'/?email='.urlencode($to).'">Click here to unsubscribe.</a>';
但是,Mandrill在发送类似于转发的电子邮件方面有一个优势:使用一行代码来收件人:
'to' => array(array('email' => 'joe@example.com' ),array('email' => 'joe2@example.com' ))
我想利用Mandrill的这个优势(2000封电子邮件/天),删除foreach并在$中放置 Madrill server put the recipient's email . 这样,这部分代码将获得默认值,而不是唯一的,我将能够使用第二个代码片段 . 这样它就赢得了所有的麻烦,并且我会在我的数据库中将其标记为取消订阅 . 我使用Codeigniter API进行发送 . 你知道我怎么能帮助Mandrill帮我解决这个问题 . 提前致谢
1 回答
使用webhook检测取消订阅并让您的webhook代码将其标记为在数据库中取消订阅以防止重新发送 .
因此,您只需正常使用Mandrill发送,并让Mandrill添加自己的取消订阅链接 .
接下来,您将设置一个webhook,用于侦听来自用户的取消订阅事件 .
当webhook被触发时,它将调用您的webhook代码,您的代码将标记用户在数据库中取消订阅 .