나는 10K 개 이상의 이메일 주소를 가지고 있습니다. 내 데이터베이스는 ID입니다. 나는 그 (것)들에게 php 우송 자를 가진 전자 우편을 보내려고 노력하고있다. 문제는 호스팅 제공 업체가 분당 60 개의 이메일을 허용한다는 것입니다.PHP-Ajax : 지연 대량 전자 메일 보내기
그래서 분당 60 개의 이메일을 제한하기 위해 이메일 코드를 변경해야한다고 생각합니다.
여기에 지금까지 작성한 코드가 있습니다.
$result = $mysqli->prepare("SELECT uid,email FROM users where address IS NULL and city IS NULL");
$result->execute();
$result->store_result();
$result->bind_result($uid,$email);
while ($result->fetch()){
$email = $email;
--Code to send email--
}
for 루프에 sleep 명령을 넣으려고 생각했지만 어딘가에서 나쁜 연습을 읽었습니다.
나는이 질문에PHP sleep delay을 확인하고 우리가 같은 대한 AJAX를 사용할 수 있습니다 발견했다.
Ajax를 사용할 수 있습니다. 그리고 몇 초마다 PHP 스크립트를 호출하는 시간 제한을 사용하십시오. 이렇게하면 느린 스크립트 로딩을 피할 수 있습니다. 또한 계속해서 계속 수행 할 수 있습니다 (현재 for 루프는 33 초 동안 만 실행 한 다음 중지합니다).
이 문제를 해결하기 위해 AJAX 또는 다른 방법을 구현하는 방법에 대한 조언이 있습니까?
대신 sleep 명령을 사용하는 것이 좋습니다. 매분 실행되는 cron 작업을 사용하는 것이 좋으며 스크립트는 데이터베이스에서 하나의 플래그를 취하여 전송 된 메일을 알 수 있도록 스크립트에서 60 개의 이메일 만 전송합니다 하나의 데이터베이스 필드 is_mail_sent를 취할 수 있음 0 OR 1, 0 = 보내지 않음, 1 = 보내짐). 스크립트에서 보낸 전자 메일은 해당 플래그를 업데이트 할 수 있습니다. –
이메일 발신이 요구됩니다. 나는 그들을 일주일에 한 번 주기적으로 보낼 필요가 없다. – Ironic
그러면 일주일에 한 번 cron 작업을 설정할 수 있습니다. –