묻고답하기
게시판 관리자 메일 등록후 중복 메일 발송
2017.03.28 10:48
XE 버전 1.7.7.2 를 사용 중입니다.
게시판은 20명 내외의 소수의 사용자들이 사용하고 있구요.
특정 게시판의 경우 게시물이 등록되면 위에서 말씀 드린 등록된 사용자들에게 자동으로 메일이 발송이 되도록 하려 하고 있습니다.
구글링을 하다 보니
게시판에 관리자 메일을 , 로 구분해서 여러개를 등록 할 수 있어, 위에서 얘기한 20명의 메일 주소를 등록했구요...
발송을 위해서
/var/www/html/classes/mail/Mail.class.php 파일의 142번째 줄에 아래와 같이 설정을 하였는데요..
function Mail()
{
$this->useGmailAccount('user_id@gmail.com', 'password','tls','587');
}
문제는 게시물 등록시 메일 발송은 잘 되는데.
같은 게시물이 등록된 메일계정의 숫자만큼 중복되서 날라 오네요.. ㅠ.ㅠ
어떠한 부분을 확인을 해봐야 할지 감이 안오네요...
사용중인 게시판 정보 입니다.
미리 답변 감사드립니다.
댓글 6
-
ksdflc,mei
2017.03.28 11:11
-
ksdflc,mei
2017.03.28 11:12
게시물 작성될때이니 board.controller.php 를 확인해보세용
-
정현정민아빠
2017.03.28 11:19
힌트 감사합니다.
확인해 볼께요...^^
-
정현정민아빠
2017.03.28 11:18
제가 이 곳 QnA 게시판을 좀 더 찾다 보니
https://www.xpressengine.com/tip/18533838
게시글에 아래와 같이 XE 1.3.1 에서의 동일 문제에 대한 해결 팁이 있던데요..
제 경우 XE 1.7.7.2 의 경우 function send() 부분이 아래와 같이 상당히 복잡하네요..ㅠ.ㅠ
-
mind****
2017.03.28 16:37
board.controller.php 에 보면 아래와 같은 for 문이 있습니다. $oMail->send(); 라인을 for 문 밖으로 이동해주시면 될거에요.
for($i=0;$i<count($target_mail);$i++)
{
$email_address = trim($target_mail[$i]);
if(!$email_address) continue;
$oMail->setReceiptor($email_address, $email_address);
$oMail->send();
}==========>
for($i=0;$i<count($target_mail);$i++)
{
$email_address = trim($target_mail[$i]);
if(!$email_address) continue;
$oMail->setReceiptor($email_address, $email_address);
}
$oMail->send();
-
정현정민아빠
2017.03.28 16:40
감사합니다...^^
해결 됐습니다....~~
코드가 너무 일부분이라 정확한건 모르겠지만
메일클래스는 , 기준으로 메일을 분할 하고 for문을 통해 등록된 사람들에게 전송됩니다.
전송부분에서 메일 전체인원이 들어가있으면 ( 1@abc.com,2@abc.com ) 이 두사람에게 두번 전송이 되겠죠?
코드 확인 부탁해용