웹마스터 팁
인증메일 때문에 고생하시는 분 참고하세요.
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. 회원가입 확장 모듈 설치한 경우, 추천인 아이디를 입력해도 추천포인트 적립이 안됨.
어떤 문제로 인해서 이러한 증상이 발생하는지는 아직 찾지를 못하였습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
날씨배너 600종류 입니다.(지역별75종X색상별8종) | 푸른커튼 | 2008.01.30 |
대부분 쉬운설치로 인해 홈페이지 빈 페이지가 뜨는 에러는.. | CJM | 2019.10.24 |
xe 기본회원가입품 연락처항목 공백&숫자 유효성검사 질문입니다. | 해운거사2 | 2019.08.25 |
[주옥시리즈] 내글 모니터링, 작성글 앞으로 뺴기 [6] | socialskyo | 2013.10.18 |
회원가입품 연락처항목 공백잇을시 질문입니다. | 해운거사2 | 2019.08.16 |
VSCODE에서 PRETTIER-PHP 사용하기 (중급자용) | reactux | 2019.07.29 |
관리자페이지의 회원목록에서 타회원들의 비밀번호 찾기 질문/답변 수정 가능하도록 하려면.. | sejin7940 | 2019.07.03 |
XE 코어의 메일전송을 우리알림 모듈로 대체하는 방법 [30] | GG | 2014.11.24 |
XE 1.5.1로 사이트 꾸미기 Part 2 [11] | 황비 | 2011.12.06 |
스케치북5 게시판 사용자정의에 색상 적용하기 | 아데나 | 2019.05.31 |
로그인 실패시 실패내역 쪽지와 메일 발송 되는걸 발송 안 되게 하려면.. | sejin7940 | 2019.05.21 |
스크랩버튼 외부로 빼내기 [3] | RainDrop+ | 2011.01.04 |
1.11.3 업로드 패치 이후 업로드 오류 관련 | 우소푸 | 2019.04.21 |
게시판 목록에서 바로 첨부파일 다운로드하기 [6] | 요다빈치 | 2012.03.13 |
XE이전 작업순서 | elancer | 2019.03.28 |
무료이미지 다운 받을 수 있는 곳 | elancer | 2019.03.19 |
회원이 글 삭제하면 삭제하지 않고 글을 다른 게시판으로 보내기 [5] | SCAC | 2012.07.03 |
트윗버튼, 페어스북 좋아요 버튼, 카카오스토리 좋아요 버튼 태그 | elancer | 2019.03.11 |
XE용 CKEditor v4.9.2 (다크 스킨 수정) [4] | 큰돌♡ | 2018.07.04 |
file 모듈 insertFile() manual_insert 시 디렉토리생성 에러 문제 해결 방법 | onTrust | 2019.01.02 |
팁 감사드립니다.
위의 팁 적용시에 개인에 맞게 바꿔서 적용하는 부분은
"구글 이메일주소"
"비밀번호"
인가요. 여기에 제 지메일 주소와 비밀번호만 입력하면 사용가능하는 말씀이신지요?
워낙에 초보인지라....민망한 질문 너그럽게 봐주시길 바랍니다....