회원메일링 시 화면 출력 관련 (./bbs/admin/mailsend.php) > 그누3 팁자료실

그누3 팁자료실

회원메일링 시 화면 출력 관련 (./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();
=======================



그나저나 메일링 리스트 프로그램을 뚝딱뚝딱 새로 만들고 있는데..
넘 어려워요~잉~
추천
0

댓글 전체

전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT