상세 컨텐츠

본문 제목

그누보드 후이즈메일 SMTP로 발송하는 방법 (퍼펙트 해결법)

개발생활/Web Publishing

by 한국인맛집 2024. 1. 3. 17:27

본문

반응형

 

그누보드 mailer lib경로로 우선 이동해야한다.

 

 

필자의 경로는 다음과같다.

 

개발하는 사람마다 경로가 다르니 어느정도 참고하세요.

/home/web/gnu/lib/mailer.lib.php

 

 

 

아마 보게되면 아래코드와 다른부분이있을것이다.

 

나는 mailer() 는 냅두고 .

 

새로 함수를 만들어 사용했다.

 

필요하시다면 함수명 제외하고 바디 부분만 복사하셔서 

 

아이디, 패스워드만 추가하면 될거같다.

 

 

이게 네이버나 구글, 다음

 

HOST, port , user_name,  pw 만 변경하여 동일하게 사용할수 있다.

 

후이즈메일 경우 정보가 매우 옛날것들이 많더라..

 

그래서 찾다 찾다 STMPSecure 부분이 ssl 이 아닌 tls 로 변경해야하는 점 때문에 고생했다.

 

 

SMTPDebug = 2 << 이게 있는데.

 

이건 테스트가 끝나면 주석처리 하도록.  (말그대로 디버그 용임)

 

 

//
function send_mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
{
    global $config;
    global $g5;

    if ($type != 1)
        $content = nl2br($content);

    $mail_send_result = false;

    try {
        $mail = new PHPMailer(); // defaults to using php "mail()"

        $mail->IsSMTP(); // telling the class to use SMTP

        $mail->SMTPDebug = 2;
        $mail->SMTPSecure = "tls";
        $mail->SMTPAuth = true;
        $mail->Host = "smart.whoismail.net";  // HOST
        $mail->Port = 587;    // 포트
        $mail->Username = "계정이곳에 주소까지 입력"; // 아이디
        $mail->Password = "비밀번호 입력";   // 패스워드
        $mail->CharSet = 'UTF-8';
        $mail->From = $fmail;
        $mail->FromName = $fname;
        $mail->Subject = $subject;
        $mail->AltBody = ""; // optional, comment out and test
        $mail->msgHTML($content);
        $mail->addAddress($to);
        if ($cc)
            $mail->addCC($cc);
        if ($bcc)
            $mail->addBCC($bcc);

		// 파일을 하나만 업로드하기 위해 아래와같이 수정.
        if ($file != "") {
//            foreach ($file as $f) {
            $mail->addAttachment($file['path'], $file['name']);
//            }
        }

        $mail = run_replace('mail_options', $mail, $fname, $fmail, $to, $subject, $content, $type, $file, $cc, $bcc);

        $mail_send_result = $mail->send();

    } catch (Exception $e) {
    
    }

    run_event('mail_send_result', $mail_send_result, $mail, $to, $cc, $bcc);

    return $mail_send_result;
}

 

 

그럼 어떻게 사용하는가?

 

폼을 전송한뒤 처리하는 곳.

<?php

require_once ('./_common.php');

include_once(G5_LIB_PATH.'/mailer.lib.php');




$name = $_POST['name'];
$email = $_POST['eamil'];
$call = $_POST['call'];
$ubject = $_POST['subject'];
$content = $_POST['content'];

$email_name = $config['cf_admin_email_name'];

// TODO : 수정하여 사용
$send_mail = "보내는 사람 이메일";

// TODO : 수정하여 사용
$subject = '[문의 메일] 홈페이지 ';


$con = '';

// TODO : 수정하여 사용
$con .= '<h2>제품 문의</h2>';
$con .= '<ul>';

$con .= '<li>문의자 : '. $name.'</li>';
$con .= '<li>이메일 : '.$email.'</li>';
$con .= '<li>전화번호 :'.$call.'</li>';
$con .= '<li>제목 :'.$post_subject.'</li>';
$con .= '<li>내용 :  '.$content.'</li>';
$con.= '</ul>';

// TODO : 수정하여 사용
send_mailer($email_name,"보내고자하는 이메일", $send_mail, $subject, $con, 1);

alert("문의가 접수되었습니다.");
header("Location: ".G5_BBS_URL.'/content.php?co_id=product_qa');

?>

 

 

이렇게 사용하면 알럿 메시지도 뜨면서 원래 있던 페이지로 이동하게되며 폼메일 전송이 정상적으로 동작하게된다.

 

 

반응형

관련글 더보기