후이즈서버 이용 게시판 글쓰기 메일받기 <<< 알려주세요.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
후이즈서버 이용 게시판 글쓰기 메일받기 <<< 알려주세요.

QA

후이즈서버 이용 게시판 글쓰기 메일받기 <<< 알려주세요.

본문

후이즈에서 호스팅 하고 있습니다.

도메인은 www.ppagc.com 입니다.

 

후이즈와 이곳에서 다른 분이 올리신 글을 검색하여 lib/mailer.lib.php 파일을

 

 

 

<?

if (!defined("_GNUBOARD_")) exit;

 

// 메일 보내기 (파일 여러개 첨부 가능)

// type : text=0, html=1, text+html=2

function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="") 

{

    global $config;

    global $g4;

 

    // 메일발송 사용을 하지 않는다면

    if (!$config[cf_email_use]) return;

 

    $fname   = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";

    $subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";

    //$g4[charset] = ($g4[charset] != "") ? "charset=$g4[charset]" : "";

$fmail = "http://sir.co.kr/");

 

        $header .= "Content-type: MULTIPART/MIXED; BOUNDARY=\"$boundary\"\n\n";

        $header .= "--$boundary\n";

    }

 

    if ($type) {

        $header .= "Content-Type: TEXT/HTML; charset=$g4[charset]\n";

        if ($type == 2)

            $content = nl2br($content);

    } else {

        $header .= "Content-Type: TEXT/PLAIN; charset=$g4[charset]\n";

        $content = stripslashes($content);

    }

    $header .= "Content-Transfer-Encoding: BASE64\n\n";

    $header .= chunk_split(base64_encode($content)) . "\n";

 

    if ($file != "") {

        foreach ($file as $f) {

            $header .= "\n--$boundary\n";

            $header .= "Content-Type: APPLICATION/OCTET-STREAM; name=\"$f[name]\"\n";

            $header .= "Content-Transfer-Encoding: BASE64\n";

            $header .= "Content-Disposition: inline; filename=\"$f[name]\"\n";

 

            $header .= "\n";

            $header .= chunk_split(base64_encode($f[data]));

            $header .= "\n";

        }

        $header .= "--$boundary--\n";

    }

    @mail($to, $subject, $message, $headers, '-f'.$from); 

}

 

// 파일 첨부시

/*

$fp = fopen(__FILE__, "r");

$file[] = array(

    "name"=>basename(__FILE__),

    "data"=>fread($fp, filesize(__FILE__)));

fclose($fp);

*/

 

// 파일을 첨부함

function attach_file($filename, $file)

{

    $fp = fopen($file, "r");

    $tmpfile = array(

        "name" => $filename,

        "data" => fread($fp, filesize($file)));

    fclose($fp);

    return $tmpfile;

}

 

// 메일 유효성 검사

// core PHP Programming 책 참고

// hanmail.net , hotmail.com , kebi.com 등이 정상적이지 않음으로 사용 불가

function verify_email($address, &$error)

{

    global $g4;

 

    $WAIT_SECOND = 3; // ?초 기다림

 

    list($user, $domain) = explode("@", $address);

 

    // 도메인에 메일 교환기가 존재하는지 검사

    if (checkdnsrr($domain, "MX")) {

        // 메일 교환기 레코드들을 얻는다

        if (!getmxrr($domain, $mxhost, $mxweight)) {

            $error = "메일 교환기를 회수할 수 없음";

            return false;

        }

    } else {

        // 메일 교환기가 없으면, 도메인 자체가 편지를 받는 것으로 간주

        $mxhost[] = $domain;

        $mxweight[] = 1;

    }

 

    // 메일 교환기 호스트의 배열을 만든다.

    for ($i=0; $i<count($mxhost); $i++)

        $weighted_host[($mxweight[$i])] = $mxhost[$i];

    ksort($weighted_host);

 

    // 각 호스트를 검사

    foreach($weighted_host as $host) {

        // 호스트의 SMTP 포트에 연결

        if (!($fp = @fsockopen($host, 25))) continue;

 

        // 220 메세지들은 건너뜀

        // 3초가 지나도 응답이 없으면 포기

        socket_set_blocking($fp, false);

        $stoptime = $g4[server_time] + $WAIT_SECOND;

        $gotresponse = false;

 

        while (true) {

            // 메일서버로부터 한줄 얻음

            $line = fgets($fp, 1024);

 

            if (substr($line, 0, 3) == "220") {

                // 타이머를 초기화

                $stoptime = $g4[server_time] + $WAIT_SECOND;

                $gotresponse = true;

            } else if ($line == "" && $gotresponse)

                break;

            else if ($g4[server_time] > $stoptime)

                break;

        }

 

        // 이 호스트는 응답이 없음. 다음 호스트로 넘어간다

        if (!$gotresponse) continue;

 

        socket_set_blocking($fp, true);

 

        // SMTP 서버와의 대화를 시작

        fputs($fp, "HELO $_SERVER[SERVER_NAME]\r\n");

        echo "HELO $_SERVER[SERVER_NAME]\r\n";

        fgets($fp, 1024);

 

        // From을 설정

        fputs($fp, "MAIL FROM: <info@$domain>\r\n");

        echo "MAIL FROM: <info@$domain>\r\n";

        fgets($fp, 1024);

 

        // 주소를 시도

        fputs($fp, "RCPT TO: <$address>\r\n");

        echo "RCPT TO: <$address>\r\n";

        $line = fgets($fp, 1024);

 

        // 연결을 닫음

        fputs($fp, "QUIT\r\n");

        fclose($fp);

 

        if (substr($line, 0, 3) != "250") {

            // SMTP 서버가 이 주소를 인식하지 못하므로 잘못된 주소임

            $error = $line;

            return false;

        } else

            // 주소를 인식했음

            return true;

 

    }

    

    $error = "메일 교환기에 도달하지 못하였습니다.";

    return false;

}

?> 

 

 

 

이렇게 하였습니다만....틀린 것 같습니다. 메일이 오지 않네요.

제가 너무 초보라... 어디를 어떻게 수정해야 하는지... 잘 모르겠습니다.

관리자모드에서 글 작성시 메일보내기 다 설정했습니다.

메일테스트 해도 안됩니다.

 

 

게시판 글 작성시 메일 받기를 원하는 주소는 아이디@hanmail.net 입니다.

 

 

고수님들 번거로우시더라도 도움 부탁드립니다. _(__)_

이 질문에 댓글 쓰기 :

답변 2

메일 발송은 sendmail이라는 모듈에서 발송하게 되는데요

후이즈에서 이 모듈 사용가능하게 설정해두었는지 먼저 확인해보시는게 맞을겁니다.

후이즈 쪽에 문의해봐도 위와 같은 답변만 옵니다.
검색을 해봐도 제가 너무 초보라서 그런지 모듈 설정부분을 어디서 체크하는지 모르겠습니다.

죄송하지만 조금 자세히 설명해주셔요~

소스코드는 별 문제는 없어 보입니다.

제가 말씀드렸다 시피 센드메일 모듈 사용이 가능한지 부터 문의해보세요

sendmail 모듈은 후이즈쪽에서 당연히 되는 거라 해서
후이즈쪽에 계속 전화문의 게시판 문의를 통해 해결했습니다.


lib/mailer.lib.php 에 아래 부분을 찾아 바꿔주니 됩니다.


$fmail = "admin@도메인"; (여기서 admin은 가상의 아이디라네요.)
그리고

@mail($to, $subject, $message, $headers, '-f'.$from); 가 아니라

@mail($to, $subject, $"", $headers, '-f'.$from);

으로 수정하니 메일테스트와 게시판 글쓰기 후 자동메일도 잘 됩니다.~


http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=30393 님의 글을 읽고
무작정 복사 붙이기 해보니 되었습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 171
QA 내용 검색

회원로그인

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