★★그누보드에서 메일 발송안되는 원인 심층분석 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

★★그누보드에서 메일 발송안되는 원인 심층분석 정보

★★그누보드에서 메일 발송안되는 원인 심층분석

본문

그누보드에서 메일발송이 안된다는 질문이 꽤나 올라 오더군요.

관리자-기본환경설정하고 게시판 메일발송 허용을 체크한 상태하에서 논해봅니다.

예를 들어 게시글 작성후 관리자에게로 메일 발송이 안되는 문제보겠습니다

/bbs/write_update.php의 약 490번째줄에

    if ($super_admin[mb_email] != $board_admin[mb_email])    {
        if ($config[cf_email_wr_super_admin]){
          mailer($wr_name, $wr_email, $super_admin[mb_email], $subject, $content, 1);
}           

$super_admin[mb_email] 값과 $board_admin[mb_email] 이값이 모두 같이 나와서 안되더군요
왜 똑같이 나올까 추적했더니...
/lib/common.lib.php의 650줄쯤에 get_admin()함수내용중에

---------------------------------------------------
 if (($is && !$mb[mb_id]) || $admin == 'group') {
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$group[gr_admin]') limit 1 ");
  $is = true;
  }

 if (($is && !$mb[mb_id]) || $admin == 'super') {
 $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$config[cf_admin]') limit 1 ");
 }
---------------------------------------------------------

 이 부분 소스를 아래처럼
---------------------------------------------------------
  if ($admin == 'group') {  //##add
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$group[gr_admin]') limit 1 ");
        $is = true;
    }

  if ($admin == 'super') {  //##add
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$config[cf_admin]') limit 1 ");
    }
---------------------------------------------------------
바꾸니 글등록시 관리자에게 메일이 잘가고 또한 답변글 등록시 원글 작성자에게 메일이 잘 가더군요

게시판관리자의 이메일이 존재하지 않으면 슈퍼어드민의 이메일을 뽑아오기때문에    if ($super_admin[mb_email] != $board_admin[mb_email])  이문장에서 false로 되어 메일발송 함수가 실행이 안된거 같슴다

그렇다면 get_admin()함수에서 ($is && !$mb[mb_id])  이런 문장이 필요한 이유는 왜일까요  혹 이부부분에 대해 아시는분 댓글 부탁합니다



그리고 옥의 티인거 같은데 /bbs/write_update.php 507줄 부분에

    // 답변 메일받기 (원게시자에게 보내는 메일)
    if (strstr($wr[wr_option], "mail") && $wr[wr_email] && $wr[wr_email] != $admin[mb_email])

이 부분이
    if (strstr($wr[wr_option], "mail") && $wr[wr_email] && $wr[wr_email] != $wr_email)

이렇게 바뀌어야 할거 같은데 왜냐하면 $admin[mb_email] 값은 존재 하지 않아서입니다

맞는건지 틀린건지는 댓글 달아주세요

(참고로 그래도 관리자에게 메일이 안오면 관리자메일주소를 다른 것으로 변경해서 테스트해보세요)
추천
9

댓글 27개

메일 발송결과에 있어서 희안한  결과가 발생했습니다
caf24호스팅받는 사이트에서 메일테스트결과.....

1.관리자메일이 paran.com인경우  보내는 메일주소가 chol.com(천리안)일때만 관리자메일로 제대로 발송되고

2.관리자메일이 hanmail.net일때 보내는 메일주소 상관없이 관리자메일로무조건 발송되고

이걸 어떡해 해석해야 할지 종잡을수 없네요


어째든
관리자메일이 parna.com이라서 1번처럼 발신자 메일주소를 무조건 천리안으로 해서 임시방편으로 쓰고 있습니다
아주 잘되고 있습니다

그누보드에서 폼메일 발송 성공여부 좀더 연구해야겠네요
저두 메일 발송땜에 팁 뒤지고 적용해봐도 잘 안되더군요...

그런데 i-boss 라는곳이 그누보드를 쓰구있는데 댓글달려도 원 작성자에게 메일로 잘 날라오더군요 ;;

위 팁도 적용해봐야겠네요
받는 메일 서버의 스팸메일  필터링 이 어떻게 구성되느냐에 따라 메일이 갈수도 있고 안 갈수도 있다고 합니다
필터링의 구성을 우린 알수가 없기에 딱히 이것이 정답이라고 할수도 없고  난감하다고 하네요

그렇다면 좀더 연구를....
오오 드디어 알아낸 사실입니다. 관리자메일을 파란닷컴을 쓰고 있는데 파란닷컴에 문의하니 아래처럼 답변을 주네요
--------------------------------------------------------------------------------------------
천리안, 야후, 네이버가 아닌 곳에서 보낸이가 해당 도메인들로 되어 있는 경우는
대부분이 스팸발송인 경우로 스팸차단 될 것입니다.
이를 방지하려면 해당 서비스의 발송서버의 발송 IP를 파란메일에 등록하여야 합니다.
--------------------------------------------------------------------------------------------
들어가서 해당 도메인의 아이피와 메일주소를 입력하였습니다

파란닷컴인경우 아이피등록제로 스팸방지를 하는군요

 그래서 파란닷컴쓰는 분은 관리자메일사용시 알아둬야 할 정보입니다.
/bbs/write_comment_update.php에서

    // 답변 메일받기 (원게시자에게 보내는 메일)
        if ($wr[wr_recv_email] && $wr[wr_email] && $wr[wr_email] != $admin[mb_email]) 

이거를.............................
    if ($wr[wr_email] && $wr[wr_email] != $admin[mb_email])  이렇게 바꿔보세요


그누보드에서 메일발송 완벽히 되는 그날까지 투혼을..............
기본적으로 ip 실명제 때문에 메일서버를 등록한후에 테스트 하세요.

메일 서버를 등록하는 주소는
http://www.pcas.co.kr/idin/bbs/tb.php/as_info_03/22
에 있습니다.
그누보드에서 메일발송이 안된다는 질문이 꽤나 올라 오더군요.

관리자-기본환경설정하고 게시판 메일발송 허용을 체크한 상태하에서 논해봅니다.

예를 들어 게시글 작성후 관리자에게로 메일 발송이 안되는 문제보겠습니다

/bbs/write_update.php의 약 490번째줄에

    if ($super_admin[mb_email] != $board_admin[mb_email])    {
        if ($config[cf_email_wr_super_admin]){
          mailer($wr_name, $wr_email, $super_admin[mb_email], $subject, $content, 1);
}           

$super_admin[mb_email] 값과 $board_admin[mb_email] 이값이 모두 같이 나와서 안되더군요
왜 똑같이 나올까 추적했더니...
/lib/common.lib.php의 650줄쯤에 get_admin()함수내용중에

---------------------------------------------------
 if (($is && !$mb[mb_id]) || $admin == 'group') {
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$group[gr_admin]') limit 1 ");
  $is = true;
  }

 if (($is && !$mb[mb_id]) || $admin == 'super') {
 $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$config[cf_admin]') limit 1 ");
 }
---------------------------------------------------------

 이 부분 소스를 아래처럼
---------------------------------------------------------
  if ($admin == 'group') {  //##add
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$group[gr_admin]') limit 1 ");
        $is = true;
    }

  if ($admin == 'super') {  //##add
  $mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$config[cf_admin]') limit 1 ");
    }
---------------------------------------------------------
바꾸니 글등록시 관리자에게 메일이 잘가고 또한 답변글 등록시 원글 작성자에게 메일이 잘 가더군요

게시판관리자의 이메일이 존재하지 않으면 슈퍼어드민의 이메일을 뽑아오기때문에    if ($super_admin[mb_email] != $board_admin[mb_email])  이문장에서 false로 되어 메일발송 함수가 실행이 안된거 같슴다

그렇다면 get_admin()함수에서 ($is && !$mb[mb_id])  이런 문장이 필요한 이유는 왜일까요  혹 이부부분에 대해 아시는분 댓글 부탁합니다



그리고 옥의 티인거 같은데 /bbs/write_update.php 507줄 부분에

    // 답변 메일받기 (원게시자에게 보내는 메일)
    if (strstr($wr[wr_option], "mail") && $wr[wr_email] && $wr[wr_email] != $admin[mb_email])

이 부분이
    if (strstr($wr[wr_option], "mail") && $wr[wr_email] && $wr[wr_email] != $wr_email)

이렇게 바뀌어야 할거 같은데 왜냐하면 $admin[mb_email] 값은 존재 하지 않아서입니다

맞는건지 틀린건지는 댓글 달아주세요

(참고로 그래도 관리자에게 메일이 안오면 관리자메일주소를 다른 것으로 변경해서 테스트해보세요)
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT