웹마스터 팁
인증메일 때문에 고생하시는 분 참고하세요.
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
넵 그렇습니다.
-
$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에도 똑같이 입력해주니 되는군요. 좋은 정보 감사합니다.
-
$mail->SetFrom('r*n*h*3*1@gamil.com', admin);
$mail->AddReplyTo(r*n*h*3*1@gamil.com, "admin");이렇게 해 놨는데도 않되요 ㅡ.ㅡ;
-
이거 하시고 성공 하신분 예제 화일좀 올려 주세요 ㅠㅠ
-
넷원
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/'+ ';
위에처럼 수정하시면 에러가 발생하지 않습니다. -
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. 회원가입 확장 모듈 설치한 경우, 추천인 아이디를 입력해도 추천포인트 적립이 안됨.
어떤 문제로 인해서 이러한 증상이 발생하는지는 아직 찾지를 못하였습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
스팸단어목록 공유 [3] | 쁘띠하긔 | 2010.10.23 |
큐브리드로 변환후 인덱스 재생성 [1] | 카르마 | 2010.10.22 |
게시판에 구글 SyntaxHighlighter 3.0.83(구문강조) 적용하기 - 본문에 코드삽입시 유용
![]() | 으아악. | 2010.10.20 |
에디터에 웹폰트를 추가하여 사용하기
[3]
![]() | 하얌이 | 2010.10.18 |
페이지 설정, 꼭 이렇게 해두세요
[10]
![]() | 老姜君 | 2010.10.14 |
인증메일 때문에 고생하시는 분 참고하세요. [17] | 박용식 | 2010.10.14 |
플래시를 이용한 최근게시물 구현 [6] | 한그림 | 2010.10.13 |
IE6부터 IE9까지 대응하기. [7] | 정찬명 | 2010.10.13 |
이미지 삽입시 아래에 한줄 띄우고 클릭가능하게 하여 편히 입력하게 만들자~
[8]
![]() | xemall | 2010.10.13 |
XE에서 설문조사시 비회원 참여하는 방법 있을까요?
[1]
![]() | hellosamyoo | 2010.10.12 |
카페24 외부페이지로 트래픽 확인하기
[1]
![]() | teryboy | 2010.10.09 |
나눔고딕 웹폰트가 아닌 API로 적용하여 사용해보자!! [10] | 으아악. | 2010.10.07 |
댓글을 리스트에 출력하기 [1] | 김성걸310 | 2010.10.07 |
광고성 글때문에.... 금지 ip 목록 공유 [5] | 한니발2 | 2010.10.06 |
큰 사이즈의 이미지 업로드시 섬네일 생성이 안되어 오류 발생하는 문제 예방법 | 도라란 | 2010.10.05 |
크로스 브라우징을 위한 css 초기화 [2] | hhgyu | 2010.10.05 |
1.4.4.1 업데이트이후 이미지가 엑스박스로 뜨는 분들 참고 [1] | 위드파트너 | 2010.10.04 |
PHP 5.3.X 버전 사용자들 중 XE 최신버전의 위젯 생성, 텍스타일 등에서의 에러날 때... | 비나무 | 2010.10.03 |
IE를 제외한 브라우저에서 첨부파일이 100%에서 사라지는 증세의 해결 [2] | 비나무 | 2010.10.03 |
IE6~8에서 CSS3속성 사용하기 [1] | SeoSeungHyun | 2010.10.01 |
팁 감사드립니다.
위의 팁 적용시에 개인에 맞게 바꿔서 적용하는 부분은
"구글 이메일주소"
"비밀번호"
인가요. 여기에 제 지메일 주소와 비밀번호만 입력하면 사용가능하는 말씀이신지요?
워낙에 초보인지라....민망한 질문 너그럽게 봐주시길 바랍니다....