我使用以下代码:
$array = explode("\n", file_get_contents($file));
// Here $file contains n e-mail addresses
foreach ($array as $value) {
$check = file_get_contents('file.txt');
$subject = 'Subject (' . $entry . ')';
$to = $value;
if ($check < $credits){
$message = '...';
}
else{
$message = '...';
}
$headers = 'MIME-Version: 1.0' . "с\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: '...' . "\r\n";
mail($to, $subject, $message, $headers);
}
读取包含n个电子邮件地址的文件。对于每封电子邮件,都会发送一条消息。文件中没有任何内容被更改。
大部分时间它工作得非常好并且只向每个地址发送一条消息。有时,它似乎进入无限循环并开始向同一地址发送多条消息。
如有需要,我可以提供更多详情。
答案 0 :(得分:0)
我没有看到任何可能导致无限循环的事情。 带有电子邮件地址的文件可能包含重复的电子邮件。
尝试这样的确认:
$array = explode("\n", file_get_contents($file));
print_r(array_count_values($array));
应输出如下内容:
Array
(
[me@host.com] => 2
[her@host.com] => 1
[him@host.com] => 3
...
)
答案 1 :(得分:0)
您的代码在连接字符串时遇到一个小错误。
错误
$headers .= 'From: '...' . "\r\n";
右
$headers = 'From: . \ R \ n";
我没有看到任何可以使用foreach产生无限循环的内容,请尝试使用&#39; var_dump($ array)&#39;来检查即将发布的值。