我有一个php mail()函数的问题, 我有6000个邮件列表的邮件地址。我希望在发送电子邮件时检测单个收件人地址,我想为unsubscrive创建一个链接
例如:
<a href="delete.php?email=sample@test.com>unsubscribe</a>"
php代码:
$dests = array("a@mail.com", "b@mail.com", ...); //over 6000 items dinamically sets
$subj = "something";
$body = "something"
. '<a href="delete.php?email=EMAIL_OF_RECIPIENT>unsubscribe</a>"';
$headers = "something";
mail($dests, $subj, $body, $headers);
一个想法是:
foreach($dests as $dest){
$subj = "something";
$body = "something"
. '<a href="delete.php?email=dest>unsubscrive</a>"';
$headers = "something";
mail($dest, $subj, $body, $headers);
}
但对于超过100位收件人来说,这是一个萌芽的想法。
有些解决方案吗?提前谢谢。
答案 0 :(得分:0)
为什么这是一个坏主意?性能我假设。发送6000封电子邮件需要一段时间(我希望这是某种背景/异步动作)。您甚至可能故意错开它以使您的邮件服务器/ ISP更好。或者为此脚本设置比其他脚本更长的最长执行时间。
一个小的改进是尽可能多地移出循环。这样做(并清理你的代码工作 - $ on变量,unsubscribe链接的完整URL和交换单引号和双引号,以便解释内联变量):
$subj = "something";
$body = "something";
$headers = "something";
foreach($dests as $dest){
mail($dest, $subj, $body . "<a href='http://example.com/delete.php?email=$dest'>unsubscrive</a>", $headers);
}