首先,我知道Mandrill有自己的方式来处理取消订阅,"Adding a link with the unsubscribe merge tag"。但它会将未订阅的用户存储在该帐户中,如果向该收件人发送简报和通知,则会拒绝。
所以我有这个代码部分,它与foreach循环分别发送给每个收件人并分别发送每封邮件:
foreach($subscribers as $subscribersRow){
$to = $subscribersRow['usr_email'];
$message .= '<br/><br/><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服务器将收件人的电子邮件放入$中。这样,这部分代码将获得默认值,而不是唯一的,我将能够使用第二个代码片段。这样它就不会拒绝发送给取消订阅的电子邮件(根本不打扰发送),并且我会在我的数据库中将其标记为取消订阅。 我使用Codeigniter API进行发送。你知道我怎么能帮助Mandrill帮我解决这个问题。 提前致谢
答案 0 :(得分:1)
使用webhook检测取消订阅,并让您的webhook代码将其标记为已取消订阅,以防止重新发布。
所以你只需正常使用Mandrill发送,并让Mandrill添加自己的取消订阅链接。
接下来,您将设置一个webhook,用于侦听来自用户的取消订阅事件。
当webhook被触发时,它将调用您的webhook代码,并且您的代码会将用户标记为已取消订阅数据库。