테스트 사이트 - 개발 중인 베타 버전입니다

지메일이 안보내지는데 뭐가 문제일까요?? 채택완료

옃이 4년 전 조회 4,116

비밀번호 찾기 스킨을 다 뜯어 고쳤고 현재 이메일을 입력하고 확인을 누르면 임시비밀번호를 만들어 이메일로 전송하는 기능을 붙였습니다

임시비밀번호까지는 잘만들어졌는데 메일로 안보내져서요

mailer.lib.php는 지난번에 다른 분이 올려주셨던 지메일로 보내는 코드로 바꿨습니다

 

 

</p>

<p>//mailer.lib.php</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;</p>

<p>//gmail SMTP 설정

function Gmailer($to, $subject, $content, $type=1)

{

    global $config;

    global $g5;

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

    if (!$config['cf_email_use']) {

        return;

    }

    if ($type != 1) {

        $content = nl2br($content);

    }

    include_once(G5_PHPMAILER_PATH.'/PHPMailerAutoload.php');

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

    if (defined('G5_SMTP') && G5_SMTP) {

        $mail->isSMTP();

        $mail->SMTPAuth = true;

        $mail->SMTPSecure = "ssl";

        $mail->Host = "smtp.gmail.com";

        $mail->Port = 465;

        $mail->Username = "메일"; //사용할 지메일 계정

        $mail->Password = "패스워드"; //구글계정 패스워드

    }

    $mail->CharSet = 'UTF-8';

    $mail->From = "메일"; //발송메일(=사용할 지메일 계정)

    $mail->FromName = "쇼핑몰이름";

    $mail->Subject = $subject;

    $mail->AltBody = ""; // optional, comment out and test

    $mail->msgHTML($content);

    $mail->addAddress($to);

    $mail->SMTPKeepAlive = true;

    return $mail->send();

}</p>

<p>?></p>

<p>

 

</p>

<p>//html ajax</p>

<p>function canchangepass(){

    var mail = document.getElementById('findmyPass').value;

    $.ajax({

      type:"POST",

      url: "sendmymail_ajax.php",

      data:{

        method:"check",

        sendmymail:mail

      },

      success:function(data){

        var json = JSON.parse(data);        

        if(json["result"] == 200){

            var word = replaceAt(mail, 2, '****'); 

            alert(data);

            $('#ip_bsBoxid').show();

            $('#ip_mail_txt').append(word);

            $('#mg_t10_11').show();

            

            }</p>

<p>            

         

        

      },

      beforeSend:function(){

      },

      complete:function(){

      },

      error:function(e){

        alert("데이터 전송 지연이 발생합니다. 잠시후에 시도해주세요.");

        return;

      },

      timeout:5000

    })//ajax;

}</p>

<p> </p>

<p>

 

</p>

<p>//sendmymail_ajax.php</p>

<p><?php</p>

<p>include_once "../common.php";

include_once "G5_LIB_PATH.'/mailer.lib.php'";</p>

<p>

?></p>

<p><?php

$conn = mysqli_connect("커넥션정보");

mysqli_query($conn, "set names utf8;");</p>

<p>$method = $_POST["method"];

$newpass = $_POST["newpass"];

$sendmymail = $_POST["sendmymail"];

$fname = "쇼핑몰이름";

$fmail = "쇼핑몰이메일";

$subject = "임시비밀번호입니다";</p>

<p>

echo $tmp_passwd;

 

if($method == "check"){

    $ran_num = rand(100000, 999999);

    $tmp_passwd = get_encrypt_string($ran_num);

    $new_pw = get_encrypt_string($tmp_passwd);

    $subject = "임시비밀번호입니다";</p>

<p>    $sql = "UPDATE g5_member SET mb_password = '".$new_pw."' WHERE mb_email ='".$sendmymail."' ";

    $rst = mysqli_query($conn, $sql);</p>

<p>    //$sql = "SELECT * FROM g5_member WHERE mb_email ='".$newmypass_id."'";

    //$rst = mysqli_query($conn, $sql);

    //$row = mysqli_fetch_array($rst);

    //$mb_id = $row["mb_id"];

    //$mb_email = $row["mb_email"];</p>

<p>    

    $Gmailer = Gmailer($sendmymail,$subject,$tmp_passwd);</p>

<p>    echo json_encode(array("result" => 200, "tmp_passwd" => $tmp_passwd, "new_pw" => $new_pw, "sql" => $sql, "Gmailer" => $Gmailer));    

}</p>

<p> </p>

<p>?></p>

<p> </p>

<p>

 

 

ajax 통신까지는 성공이 되는데 alert으로 data를 찍어보면 gmailer:false라고 뜨네요ㅠㅠ어딜 손봐야할까요..ㅠ

지메일 smtp설정 때문인가 싶어 액세스 설정 변경에 메일설정-전달 및 POP/IMAP 을 사용설정으로 해도 안됩니다 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

스팸메일 보내는사람들이 많아서 그런거에요 화이트도메인인가 먼가 등록되야지 보낼수있을거에요

거의 처음에 하시면 스팸 메일함에 있어요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인