지메일이 안보내지는데 뭐가 문제일까요??
본문
비밀번호 찾기 스킨을 다 뜯어 고쳤고 현재 이메일을 입력하고 확인을 누르면 임시비밀번호를 만들어 이메일로 전송하는 기능을 붙였습니다
임시비밀번호까지는 잘만들어졌는데 메일로 안보내져서요
mailer.lib.php는 지난번에 다른 분이 올려주셨던 지메일로 보내는 코드로 바꿨습니다
//mailer.lib.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
//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();
}
?>
//html ajax
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();
}
},
beforeSend:function(){
},
complete:function(){
},
error:function(e){
alert("데이터 전송 지연이 발생합니다. 잠시후에 시도해주세요.");
return;
},
timeout:5000
})//ajax;
}
//sendmymail_ajax.php
<?php
include_once "../common.php";
include_once "G5_LIB_PATH.'/mailer.lib.php'";
?>
<?php
$conn = mysqli_connect("커넥션정보");
mysqli_query($conn, "set names utf8;");
$method = $_POST["method"];
$newpass = $_POST["newpass"];
$sendmymail = $_POST["sendmymail"];
$fname = "쇼핑몰이름";
$fmail = "쇼핑몰이메일";
$subject = "임시비밀번호입니다";
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 = "임시비밀번호입니다";
$sql = "UPDATE g5_member SET mb_password = '".$new_pw."' WHERE mb_email ='".$sendmymail."' ";
$rst = mysqli_query($conn, $sql);
//$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"];
$Gmailer = Gmailer($sendmymail,$subject,$tmp_passwd);
echo json_encode(array("result" => 200, "tmp_passwd" => $tmp_passwd, "new_pw" => $new_pw, "sql" => $sql, "Gmailer" => $Gmailer));
}
?>
ajax 통신까지는 성공이 되는데 alert으로 data를 찍어보면 gmailer:false라고 뜨네요ㅠㅠ어딜 손봐야할까요..ㅠ
지메일 smtp설정 때문인가 싶어 액세스 설정 변경에 메일설정-전달 및 POP/IMAP 을 사용설정으로 해도 안됩니다 ㅠ
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.