웹마스터 팁
xe 안에 포함된 php mailer를 통하여 smtp 연동하여 메일 보내기 팁
2012.12.28 17:01
http://www.xpressengine.com/index.php?mid=tip&search_keyword=%EB%A9%94%EC%9D%BC&search_target=title&document_srl=21383489
http://www.xpressengine.com/index.php?mid=tip&search_keyword=%EB%A9%94%EC%9D%BC&search_target=title&document_srl=20953744
이 두글을 참조하여 다시한번 정리해 본 글입니다.
이 팁에 대한 내용은 위 두 글을 참조하시거나 문의 하시면 됩니다.
function Mail() { $this->useGmailAccount("id", "pw"); // 이 한줄만 추가하면 됩니다. } /** * Set parameters for using Gmail * * @param string $account_name Password * @param string $account_passwd Secure method ('ssl','tls') * @return void */ function useGmailAccount($account_name, $account_passwd) { $this->SMTPAuth = TRUE; $this->SMTPSecure = "tls"; $this->Host = 'smtp.gmail.com'; $this->Port = '587'; if($this->isVaildMailAddress($account_name)) { $this->Username = $account_name; } else { $this->Username = $account_name . '@gmail.com'; } $this->Password = $account_passwd; $this->IsSMTP(); }
수정이 되지 않은 순정 상태의 Mail.class.php 라면 137번째줄부터 위의 내용이 시작됩니다.
Gmail 외의 타사 SMTP에 대해 useSMTP 함수가 있기는 하나, 각 변수별로 전부 손을 봐야 하므로(전부 NULL 처리가 되어 있어서 죄다 지우고 고쳐야만 할듯 합니다.) useGmailAccount 함수를 응용하기로 합니다.
일반적인 Gmail 이용자라면 기본 소스에서 아래와 같이 바꾸시면 됩니다.
showjean 님의 팁에서는 아이디에 아이디@gmail.com 을 넣으시라고 하셨으나. 이렇게 하면 이메일 형식이 맞지 않게 됩니다.
그 이유는 161번째 줄에 이미 @gmail.com이 추가되어있기 때문입니다.
기본 주소를 쓰시는 Gmail 유저께서는 sample@gmail.com 의 경우
function Mail() { $this->useGmailAccount("sample", "pw"); // 이 한줄만 추가하면 됩니다. }
처럼 아이디만 넣으셔야 합니다.
구글 앱스를 사용하여 Gmail을 사용하시는 분들은 개인 도메인으로 주소가 이뤄져 있습니다.
이 경우에는 161번째 줄의 '@gmail.com'을 '@본인 도메인'으로 하시거나, . '@gmail.com'을 삭제하시고 아이디에 이메일 주소 형식 그대로 넣으시면 됩니다.
{ $this->Username = $account_name; // . '@gmail.com' 삭제후 아이디에 이메일 주소 그대로 입력 }
{ $this->Username = $account_name . '@도메인';//@gmail.com을 본인 도메인으로 수정. }
테나 님의 팁의 경우 위의 1번 형태를 사용하셨습니다.
추가로 손봐야 할 곳이 있습니다.
$this->SMTPSecure = "tls"; $this->Host = 'smtp.gmail.com'; $this->Port = '587';
인데요.
port는 보통 저것이 기본이므로 저대로 쓰지만 나머지는 본인의 계정에 따라 다르게 써야합니다.
예를들어 gmail 사용시 ssl 보안 사용으로 하셨다면 $this->SMTPSecure = "tls"; 를 $this->SMTPSecure = "ssl"; 로 하셔야 합니다.
타사 smtp라면 $this->Host = 'smtp.gmail.com'; 를 해당 회사의 smtp주소로 교체하셔야 하구요.
- [2016/04/29] 묻고답하기 이메일인증 문의 *1
- [2014/08/11] 묻고답하기 xe 1.7.5.7버젼 메일인증이 오류가납니다.
- [2012/03/03] 묻고답하기 메일 발신자명이 www-data 이렇게 되어서 옵니다. *1
- [2012/02/02] 묻고답하기 우분투 웹서버 쓰는데요.. *1
- [2011/12/14] 묻고답하기 업데이트 후 로그인이.... *1