회원메일링 시 화면 출력 관련 (./bbs/admin/mailsend.php) 정보
일반 회원메일링 시 화면 출력 관련 (./bbs/admin/mailsend.php)본문
뭐..php 메뉴얼에 있는 내용인데..
팁텍이라 할 순 없지만..-_-ㅋ
아래는 본래 그누보드에 포함된 메일링 소스의 일부분입니다.
==============================================================================
echo "<span style='font-size:9pt; line-height:150%;'>";
echo "<p>메일 발송중 ...<p>(100건씩 보내고 10초를 쉽니다. [끝] 이라는 단어가 나오기 전에는 중간에 중지하지 마세요.)<p>";
flush();
$emailarr = explode("\n", addslashes(trim($_POST[emails])));
$subject = stripslashes($subject);
$content = stripslashes($content);
$cnt = 0;
for ($i=0; $i<count($emailarr); $i++) {
if ($test) {
$email = $member[mb_email];
} else {
$email = $emailarr[$i];
}
$sw = ereg("[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*", $email);
// 올바른 메일 주소만
if ($sw == true) {
$cnt++;
mailer($member[mb_name], $member[mb_email], $email, $subject, $content, $text);
echo "+";
flush();
if ($cnt % 5 == 0) {
// 100통씩 보내고 몇초간 쉰다.
// 잘 보내지지 않는다고 생각되면 이 부분의 수치를 높여주세요.
sleep(15);
echo "<br>";
}
if ($test) {
break;
}
}
}
==========================================================================
위에서 보시면 flush() 함수를 통해서
메일을 한통씩 보내고 화면에 '+'를 출력하도록 되어있습니다.
실제로 메일을 작성해서 발송해보면..
페이지가 넘어가지 않고 발송이 전부 끝난 후 결과 페이지를 한꺼번에 출력하는 경우가 있습니다.
이럴 경우에는..
아래와 같이 두함수를 같이 써보세요..
flush();
ob_flush();
아마 flush() 함수만으로는 작동하지 않는 이유가..
그누보드의 index.php에 있는 아래 코드 때문인 듯 합니다..
=======================
// $doc 를 실행하여 결과물은 저장해 놓음
ob_start();
include $doc;
$ob_content = ob_get_contents();
ob_end_clean();
=======================
그나저나 메일링 리스트 프로그램을 뚝딱뚝딱 새로 만들고 있는데..
넘 어려워요~잉~
팁텍이라 할 순 없지만..-_-ㅋ
아래는 본래 그누보드에 포함된 메일링 소스의 일부분입니다.
==============================================================================
echo "<span style='font-size:9pt; line-height:150%;'>";
echo "<p>메일 발송중 ...<p>(100건씩 보내고 10초를 쉽니다. [끝] 이라는 단어가 나오기 전에는 중간에 중지하지 마세요.)<p>";
flush();
$emailarr = explode("\n", addslashes(trim($_POST[emails])));
$subject = stripslashes($subject);
$content = stripslashes($content);
$cnt = 0;
for ($i=0; $i<count($emailarr); $i++) {
if ($test) {
$email = $member[mb_email];
} else {
$email = $emailarr[$i];
}
$sw = ereg("[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*", $email);
// 올바른 메일 주소만
if ($sw == true) {
$cnt++;
mailer($member[mb_name], $member[mb_email], $email, $subject, $content, $text);
echo "+";
flush();
if ($cnt % 5 == 0) {
// 100통씩 보내고 몇초간 쉰다.
// 잘 보내지지 않는다고 생각되면 이 부분의 수치를 높여주세요.
sleep(15);
echo "<br>";
}
if ($test) {
break;
}
}
}
==========================================================================
위에서 보시면 flush() 함수를 통해서
메일을 한통씩 보내고 화면에 '+'를 출력하도록 되어있습니다.
실제로 메일을 작성해서 발송해보면..
페이지가 넘어가지 않고 발송이 전부 끝난 후 결과 페이지를 한꺼번에 출력하는 경우가 있습니다.
이럴 경우에는..
아래와 같이 두함수를 같이 써보세요..
flush();
ob_flush();
아마 flush() 함수만으로는 작동하지 않는 이유가..
그누보드의 index.php에 있는 아래 코드 때문인 듯 합니다..
=======================
// $doc 를 실행하여 결과물은 저장해 놓음
ob_start();
include $doc;
$ob_content = ob_get_contents();
ob_end_clean();
=======================
그나저나 메일링 리스트 프로그램을 뚝딱뚝딱 새로 만들고 있는데..
넘 어려워요~잉~
추천
0
0
댓글 전체