웹마스터 팁
인증메일 때문에 고생하시는 분 참고하세요.
2010.10.14 02:43
인증메일이 가는곳이 있고 안가는 곳이 있고 그래서
메일 인증을 포기 하신분은 공개 SMTP를 이용한 방법을 참고하시면 좋을 듯합니다.
현재 제 사이트에서는 문제없이 작동하고 있습니다.
core 버전은 1.4.3.1입니다.
일단 메일러를 다운 받습니다.
워낙 유명한거니 아시는 분도 계실겁니다.
http://phpmailer.worxware.com/
위 사이트에서 PHPMailer를 다운 받으세요.
(PHP 버전에 맞춰서 다운 받으세요.)
다운 받은 메일러를 XE루드 폴더에 업로드합니다.
그리고 classes/mail/Mail.class.php를 수정합니다.
상단에 다음과 같이 넣어줍니다.
(이왕이면 최상단)
require_once('PHPMailer/class.phpmailer.php');
그리고 send()라는 함수를 찾으셔서 아래와 같이 수정합니다.
function send() {
$boundary = '----=='.uniqid(rand(),true);
$this->eol = $GLOBALS['_qmail_compatibility'] == "Y" ? "\n" : "\r\n";$this->header = "Content-Type: multipart/alternative;".$this->eol."\tboundary=\"".$boundary."\"".$this->eol.$this->eol;
$this->body = sprintf(
"--%s".$this->eol.
"Content-Type: text/plain; charset=utf-8; format=flowed".$this->eol.
"Content-Transfer-Encoding: base64".$this->eol.
"Content-Disposition: inline".$this->eol.$this->eol.
"%s".
"--%s".$this->eol.
"Content-Type: text/html; charset=utf-8".$this->eol.
"Content-Transfer-Encoding: base64".$this->eol.
"Content-Disposition: inline".$this->eol.$this->eol.
"%s".
"--%s--".
"",
$boundary,
$this->getPlainContent(),
$boundary,
$this->getHTMLContent(),
$boundary
);$this->procCidAttachments();
$this->procAttachments();$headers = sprintf(
"From: %s".$this->eol.
"%s".
"%s".
"%s".
"%s".
"MIME-Version: 1.0".$this->eol."",
$this->getSender(),
$this->messageId?("Message-ID: <".$this->messageId.">".$this->eol):"",
$this->replyTo?("Reply-To: <".$this->replyTo.">".$this->eol):"",
$this->bcc?("Bcc: ".$this->bcc.$this->eol):"",
$this->references?("References: <".$this->references.">".$this->eol."In-Reply-To: <".$this->references.">".$this->eol):""
);
$headers .= $this->header;
//if($this->additional_params) return mail($this->getReceiptor(), $this->getTitle(), $this->body, $headers, $this->additional_params);
//return mail($this->getReceiptor(), $this->getTitle(), $this->body, $headers);
$MAILTO = $this->receiptor_email;
$TITLE = $this->getTitle();
$BODY = $this->body;
$HEADER = $headers;
$HEADER .= "\r\nMIME-Version: 1.0\r\n";
$HEADER .= "Content-type: text/plain; charset=euc-kr\r\nContent-Transfer-Encoding: 8bit\r\nX-Priority: 1\r\nX-MSMail-Priority: High\r\n";
$HEADER .= "From: $this->replyTo\r\n" . "Reply-To: $this->replyTo\r\n" . "X-Mailer: PHP/" . phpversion() . "\r\nX-originating-IP: " .$_SERVER['REMOTE_ADDR']. "\r\n";
$mail = new PHPMailer();
$mail->addCustomHeader($HEADER);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->IsHTML(true);
$mail->Host = "yourdomain.com"; // SMTP server
//$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->ContentType="text/plain";
$mail->CharSet = "utf-8";
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "구글 이메일주소"; // GMAIL username
$mail->Password = "비밀번호"; // GMAIL password
$mail->SetFrom('구글 이메일주소', '보내는 사람 이름');
$mail->AddReplyTo("답장받을 이메일 주소", "답장받을 사람 이름");
$mail->Subject = $TITLE;
$mail->AltBody = $BODY; // optional, comment out and test
$mail->MsgHTML($BODY);
$address = $MAILTO;
$mail->AddAddress($address, $address);
$mail->Send();
}
메일러 다운받은 곳에가시면 gmail SMTP를 이용한 예제가 있습니다.
이해 안되시는 분은 예제를 참고하시고요...
※ 아마 파란(paran.com)도 공개 SMTP이니 적용하면 가능할 것 같습니다.
테스트는 안해봤는데...필요하신분은 적용해 보세요.
댓글 17
-
나르니즘
2010.10.16 21:44
-
Community
2010.10.26 15:01
죄송하지만 이해가 안가서 그러는데.. 예제 파일 좀 올려주시면 안될까요...
-
주하니
2010.10.27 16:56
정말 필요한 팁이긴 한데
애드온으로 나오면 대박일 듯 .. 초보자가 소스 손대기엔 부담이 ㅡㅡㅋ
업데이트때도 불안하고
-
tohappy
2010.10.28 11:14
박용식님 이걸 설치하면 서버에 Sendmail 등이 없이 Gmail등의 SMTP를 이용해서
회원인증/비밀번호 찾기 메일 사용이 가능 한가요?
감사합니다.
-
박용식
2010.10.29 15:36
넵 그렇습니다.
-
컴박살
2010.11.01 22:50
$mail->SetFrom <--- 요기서 에러가 떠요 ㅡ.ㅡ;
어떻게 해야 할찌 ㅠㅠ
-
박용식
2010.11.02 02:32
$mail->SetFrom('구글 이메일주소', '보내는 사람 이름');
말 그대로 구글의 이메일 주소와 보내는 사람의 이름을 삽입하시면 되는데...
다시한 번 잘 살펴보시고요...ㅠㅠ
-
stereo
2010.11.03 09:57
설명해주신 그대로 했다가
$mail->Host = "yourdomain.com"; // SMTP server
이 부분에 서버와 포트까지 입력하고,
PHPMailer/class.phpmailer.php에도 똑같이 입력해주니 되는군요. 좋은 정보 감사합니다.
-
컴박살
2010.11.05 20:20
$mail->SetFrom('r*n*h*3*1@gamil.com', admin);
$mail->AddReplyTo(r*n*h*3*1@gamil.com, "admin");이렇게 해 놨는데도 않되요 ㅡ.ㅡ;
-
컴박살
2010.11.06 00:12
이거 하시고 성공 하신분 예제 화일좀 올려 주세요 ㅠㅠ
-
넷원
2010.11.14 03:25
올린 내용대로 설치하니 (몇가지 세팅이 좀 빠졌더군요) 메일은 잘 되는데 다른곳 (관리자 메뉴)에서 에러가 나기 시작하네요. 서버 설치 경로로 가서 보니 PHP 에러가 있습니다. 일단은 메일을 중지하고 문제를 고치려 하고 있습니다. 참고들 하시기 바랍니다.
-
Tim
2010.12.03 10:50
$this->procCidAttachments();
$this->procAttachments(); 이부분 에러메시지가 뜨네요.함수명이 바뀐건지.. 확인하려면 어떤 부분을 봐야할까요?
감사해요. 좋은 정보주셔서..
-
해떨
2011.01.21 12:47
글 올려주신 박용식님 정말 감사합니다. 이 팁 덕분에 쉽게 해결됬습니다. 아래 주소에 가서 PHPmailer 를 다운 받습니다. http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download 받은 다음 압축을 푸시면 PHPMailer_v5.1 폴더가 생깁니다. 이폴더를 xe 폴더 안에 넣어주셔야 합니다 그리고 폴더명을 PHPMailer 바꿔주셔야 합니다. 그 다음 classes/mail/Mail.class.php 을 위 설명대로 수정 하면됩니다. 그리고 gmail 환경설정에 [전달 및 POP/IMAP] 사용하기로 변경해주셔야 합니다. -
jameshpyo
2011.06.20 10:38
안되시는 분 아래 링크의 부연설명 참고하시길.(박용식님, 해떨님 내용 + 알파)- mislayer.egloos.com/1509382
-
IronEagle
2011.06.23 17:01
위에 팁으로 구성하셨는데 에러가 발생한다고 한다면 다음사항을 체크해보시길 바랍니다.
1. OPENSSL 이 활성화 되었는지 ? =>phpinfo()에서 확인해보시면 됩니다.
2. 465포트가 열렸는지?
3. 지메일 계정의 IMAP,POP 설정이 활성화 되었는지?
4. 지메일 계정이 블록되었는지?
추가적으로...
classes/mail/Mail.class.php 상단에
require_once('PHPMailer/class.phpmailer.php'); 를 붙이면 관리자 메뉴 관리의 메뉴들이 안보이는 에러가 발생합니다.
http://www.xpressengine.com/index.php?document_srl=19277785
classes/mail/Mail.class.php 상단에
class.phpmailer.php 소스를 전부 붙여넣기 하신다음에
public $PluginDir = 'PHPMailer/'+ ';
위에처럼 수정하시면 에러가 발생하지 않습니다. -
미스촌닭
2012.07.16 21:41
Fatal error: Cannot redeclare class phpmailerException in C:\APM_Setup\htdocs\xe\libs\phpmailer\phpmailer.php on line 2319
에라가 납니다 어디가 잘못 되었는지 부탁드립니다
-
위드파트너
2012.08.11 20:33
이 방법을 사용할 경우 현재까지 발견된 문제점.
1. nate.com 메일로는 전송이 안됨.
2. 회원가입시 포인트 지급 설정한 것이 적용 안됨.
3. 회원가입 확장 모듈 설치한 경우, 추천인 아이디를 입력해도 추천포인트 적립이 안됨.
어떤 문제로 인해서 이러한 증상이 발생하는지는 아직 찾지를 못하였습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
Admin 페이지에서 사이트맵 삭제가 안될 때 | FontBox | 2012.10.06 |
회원설정에 레이아웃 설정이 생겼습니다. 회원정보보기페이지 레이아웃 설정 가능 [2] | 똑디 | 2012.10.04 |
youtube, vimeo 자동 썸네일 생성 팁 1.5 이상 [3] | 꿈틀잉 | 2012.09.19 |
iframe 아이프레임 투명처리 | 꿈틀잉 | 2012.10.04 |
실시간 쪽지 [10] | CMD | 2012.09.20 |
제목 부분에 특수키 입력 못하게 막는 방법 [22] | sejin7940 | 2012.09.21 |
[초보팁] 게시판 하단 버튼 정리 [2] | 브레인630 | 2012.09.24 |
UTF-8에서 호환되는 사랑비 BGM 올립니다. [8] | 로로아 | 2008.10.15 |
XE스팸필터 등록 오류(1.5.3.2 적용후) [10] | 정박사닷컴 | 2012.09.11 |
관리자의 회원정보 수정 페이지에 '가입일/최근접속일' 추가하기 [6] | showjean | 2012.09.17 |
iframe을 이용한 악성코드 침투 - 치료 및 대응법 (검블러 or GENO) [8] | 미루819 | 2009.10.01 |
친절한설명! 자신의홈페이지에 간단히 음악넣기 [10] | 준봉쿠 | 2011.12.18 |
인증메일 때문에 고생하시는 분 참고하세요. [17] | 박용식 | 2010.10.14 |
1.4 에서 1.5로 게시판 마이그레이션 팁 [12] | 마음의빈자리 | 2012.07.10 |
DB네임(테이블 프리픽스) 변경 방법 phpmyadmin | 꿈틀잉 | 2012.09.12 |
startssl 에 가입하고 패널 들어갈때 인증서 못받으신분들 | 우리아기 | 2012.09.12 |
인증메일 에러 나시는 분께 드리는 글 | sorigongan | 2012.09.11 |
글 드래그, 오른쪽마우스, 글복사 한번에 막는방법 [6] | 리엔필드 | 2012.06.05 |
iframe 깨는 스크립트 입니다. [4] | HB | 2012.09.01 |
사이트 공사할 때 임시로 다른 페이지 보여주기 | 하늘종 | 2012.09.03 |
팁 감사드립니다.
위의 팁 적용시에 개인에 맞게 바꿔서 적용하는 부분은
"구글 이메일주소"
"비밀번호"
인가요. 여기에 제 지메일 주소와 비밀번호만 입력하면 사용가능하는 말씀이신지요?
워낙에 초보인지라....민망한 질문 너그럽게 봐주시길 바랍니다....