메일발송시 나눠서 발송하는방법
본문
메일을 1000건씩 끈어서 발송하려고하는데요
선택된회원이 1만명일경우 어던식으로 돌려야하는지 고수님들부탁드립니다.
mail_select_update.php 에 적용해야될거같은데방법을모르겟네요
<?php
$sub_menu = "200300";
$countgap = 5; // 몇건씩 보낼지 설정
$maxscreen = 500; // 몇건씩 화면에 보여줄건지?
$sleepsec = 300; // 천분의 몇초간 쉴지 설정
// 중 략
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $to_email, $subject, $content, 1);
echo "<script> document.all.cont.innerHTML += '$cnt. $to_email ($mb_id : $name)<br>'; </script>\n";
//echo "+";
flush();
ob_flush();
ob_end_flush();
usleep($sleepsec);
if ($cnt % $countgap == 0)
{
echo "<script> document.all.cont.innerHTML += '<br>'; document.body.scrollTop += 1000; </script>\n";
}
// 화면을 지운다... 부하를 줄임
if ($cnt % $maxscreen == 0)
echo "<script> document.all.cont.innerHTML = ''; document.body.scrollTop += 1000; </script>\n";
}
}
?>답변 4
<?php
$list = sql_query("select * from g5_mail_list where is_send = 'N' limit 1000 ");
for($i=0;$row=sql_fetch_array($list);$i++){
mail send;
sql_query("update g5_mail_list set is_send = 'Y' where mail_id = '{$row[mail_id]}' ");
}
$no = sql_fetch("select count(*) cnt from g5_mail_list where is_send = 'N' ");
if($no[cnt]){
page_reload;;
}else{
end
}
?>
이정도면 되나요???
발송 리스트를 db화 하신 담에
1000건 발송하고
발송 페이지 리로드
미발송건 중1000건 발송하고
발송페이지 리로드
미발송건 중1000건 발송하고
발송페이지 리로드
.....
저는 이렇게 처리합니다. ^^
더 좋은 방법 있으신 분 계신가요?
발송 리스트 db화는 원래생각햇엇는데 실력이안되서,,,,
힌트점주세요.ㅎㅎ
한번적용해보겟습니다. 감사함니다.
답변을 작성하시기 전에 로그인 해주세요.