묻고답하기

        /**
         * @brief 코멘트 추가
         **/
        function procBoardInsertComment() {
            // 권한 체크
            if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');
            $logged_info = Context::get('logged_info');

            // 댓글 입력에 필요한 데이터 추출
            $obj = Context::gets('document_srl','comment_srl','parent_srl','content','password','nick_name','member_srl','email_address','homepage','is_secret','notify_message');
            $obj->module_srl = $this->module_srl;

            // 원글이 존재하는지 체크
            $oDocumentModel = &getModel('document');
            $oDocument = $oDocumentModel->getDocument($obj->document_srl);
            if(!$oDocument->isExists()) return new Object(-1,'msg_not_permitted');

            // For anonymous use, remove writer's information and notifying information
            if($this->module_info->use_anonymous == 'Y') {
                $obj->notify_message = 'N';
                >>>>$obj->notify_message = 'Y';<<<<
                $this->module_info->admin_mail = '';
                >>>>$this->module_info->admin_mail; ---or--- $this->module_info->admin_mail = '메일을 받을 임의의 주소'; <<<<

                $obj->member_srl = -1*$logged_info->member_srl;
                $obj->email_address = $obj->homepage = $obj->user_id = '';
                >>>> $obj->email_address = '임의의 이메일 주소'; <<<<
                >>>> $obj->homepage = $obj->user_id = ''; <<<<
                $obj->user_name = $obj->nick_name = 'anonymous';
                $bAnonymous = true;
            }
            else
            {
                $bAnonymous = false;
            }

            // comment 모듈의 model 객체 생성
            $oCommentModel = &getModel('comment');

            // comment 모듈의 controller 객체 생성
            $oCommentController = &getController('comment');

            // comment_srl이 존재하는지 체크
            // 만일 comment_srl이 n/a라면 getNextSequence()로 값을 얻어온다.
            if(!$obj->comment_srl) {
                $obj->comment_srl = getNextSequence();
            } else {
                $comment = $oCommentModel->getComment($obj->comment_srl, $this->grant->manager);
            }

            // comment_srl이 없을 경우 신규 입력
            if($comment->comment_srl != $obj->comment_srl) {

                // parent_srl이 있으면 답변으로
                if($obj->parent_srl) {
                    $parent_comment = $oCommentModel->getComment($obj->parent_srl);
                    if(!$parent_comment->comment_srl) return new Object(-1, 'msg_invalid_request');

                    $output = $oCommentController->insertComment($obj, $bAnonymous);

                // 없으면 신규
                } else {
                    $output = $oCommentController->insertComment($obj, $bAnonymous);
                }

                // 문제가 없고 모듈 설정에 관리자 메일이 등록되어 있으면 메일 발송
                if($output->toBool() && $this->module_info->admin_mail) {
                >>>> if($this->module_info->admin_mail) { <<<<            --- or ---   
                >>>> if($output->toBool() || $this->module_info->admin_mail) { <<<<
                    $oMail = new Mail();
                    $oMail->setTitle($oDocument->getTitleText());
                    $oMail->setContent( sprintf("From : <a href=\"%s#comment_%d\">%s#comment_%d</a><br/>\r\n%s", getFullUrl('','document_srl',$obj->document_srl),$obj->comment_srl, getFullUrl('','document_srl',$obj->document_srl), $obj->comment_srl, $obj->content));
                    $oMail->setSender($obj->user_name, $obj->email_address);

                    $target_mail = explode(',',$this->module_info->admin_mail);
                    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();
                    }
                }

            // comment_srl이 있으면 수정으로
            } else {
				// 다시 권한체크
				if(!$comment->isGranted()) return new Object(-1,'msg_not_permitted');

                $obj->parent_srl = $comment->parent_srl;
                $output = $oCommentController->updateComment($obj, $this->grant->manager);
                $comment_srl = $obj->comment_srl;
            }
            if(!$output->toBool()) return $output;

            $this->setMessage('success_registed');
            $this->add('mid', Context::get('mid'));
            $this->add('document_srl', $obj->document_srl);
            $this->add('comment_srl', $obj->comment_srl);
        }


xe 1.4 버전이라서 송동우님이 올리신 팁이 맞지가 않더라구요

댓글을 메일로 보내는 처리를 하는 곳이 modules/board/board.controller.php 임을 확인하였고

위 코드에서 빨간 글씨가 제가 수정 해본 것이지만(코드 하이라이터 안에서는 글씨색이 적용이 안되는군요),

'>>>>' , '<<<<' 로 표시한 곳 입니다.

비회원 댓글은 메일로 오지 않는 상황입니다.

--- or --- 는 앞 뒤,(혹은 위 아래)의 코드 모두 적용을 해봤다는 뜻입니다.


회원의 메일은 잘 오고 있는 상황이므로,

// 문제가 없고 모듈 설정에 관리자 메일이 등록되어 있으면 메일 발송

if($output->toBool() && $this->module_info->admin_mail) {


부터 보니, output이 false 날 일은 아마 없을 듯 하고 $this 가 false일 것 같아서 위에서 보니,


// For anonymous use, remove writer's information and notifying information

            if($this->module_info->use_anonymous == 'Y') {

                $obj->notify_message = 'N';

                $this->module_info->admin_mail = ''; <--- 이곳에서 this에 빈 문자열을 넣어주는 것을 확인했습니다. if 구문도 비회원일 때를 뜻하는 것 같구요


                $obj->member_srl = -1*$logged_info->member_srl;

                $obj->email_address = $obj->homepage = $obj->user_id = '';

                $obj->user_name = $obj->nick_name = 'anonymous';

                $bAnonymous = true;

            }


그래서 그 부분을 주석도 해보고, 아니면 받고 싶은 메일 값을 넣어도 줘보았는데 여전히 메일이 오지 않았습니다.

그 외에도 $obj->email_address 또한 빈 문자열이면 마지막에 send 할 때 실패가 될 것 같아서 이곳에도 이메일 주소를 넣었고,

$obj->notify_message = 'N'; 도 'Y' 를 넣었습니다.


마지막으로 

if($output->toBool() && $this->module_info->admin_mail) {

이 부분에서도 output이 false가 나는게 아닐 까 해서



if($this->module_info->admin_mail) {            이렇게도 해보았고,

if($output->toBool() || $this->module_info->admin_mail) {             이렇게도 해보았습니다만



여전히 메일이 오지 않습니다. 

수정하는 파일이 정말 작동하는 파일인지는

메일 보낼 때 서식이라고 볼 수 있는

From :  ..................

이 부분을 From :: 으로 콜론 두개를 붙여 수정하였고 맞는 것을 확인했습니다.


어디가 잘못된건지 궁금합니다.

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
BonaSera 댓글이 관리자메일로 오긴하는데, 비회원의 댓글은 안오는 상황 질문 [2] 2013.06.24 by 송동우
쿡래빗 클릭시 포인트 증가 시키기.. [1] 2013.06.24 by sejin7940
구름나무바위 게시판 갤러리 스킨 설정 값에 0을 입력하면 적용은 되는데 값은 default값으로 나옵니다. [1] file 2013.06.24 by sejin7940
Tbworld 회원등급별 게시물 댓글 열람 제한하는 방법은? [1] 2013.06.24 by 송동우
아싸리방가 레이아웃 메뉴 수정 방법좀 알려주실분 없으신가요 [1] 2013.06.24 by 송동우
Fidelity 메뉴가 안뜹니다... [1] 2013.06.24 by 송동우
amare 에러메시지  
sage하늘 메뉴 링크(타겟) 질문합니다.  
키스미베이베 사이트에 트로이잔이 심어져있는거같은데... [1] 2013.06.25 by 꾸링
유리로봇 게시글 열람한회원 목록으로 표시.. [2] 2013.06.25 by sejin7940
김낙지 선우 로그인 위젝 사용하시는 분들 도와주세요! 제발 ㅠㅠㅠㅠ [7] file 2013.06.25 by 김낙지
김낙지 댓글 익명 설정의 anonymous와 관련해서요 부디 알려주세요! [4] file 2013.06.25 by 김낙지
노풀디케 DB 에러로그에서 xe_analysis_log [ERROR] 라고 나옵니다.  
Fidelity 간단한 문제 해결해주실분 (2만원) [1] 2013.06.25 by 송동우
강군z 제로브드xe 설정에 관리자 접근 ip 실수로 다른걸로해서 [1] 2013.06.25 by 송동우
후아아아~ 스케치북5 게시판 이미지 자동삽입 문제 해결 부탁드려요. [1] file 2013.06.25 by 후아아아~
아굴라2 텍스타일 원격발행시 이미지 엑박으로 되는 문제  
초짱ㅇㅇㅇ 제로보드 1.7.3.4 신규 설치 오류  
넷스카이 파일첨부 기능이 안되는데 어떤걸 수정하면 되나요? [2] 2013.06.25 by 넷스카이
overeasy 1.5버전 설치를 원하는데요 [1] 2013.06.25 by 날마다좋은날
필명중복확인 db를 백업하지 않았는데 홈페이지 복구할 수 있나요? [1] 2013.06.25 by 날마다좋은날
순둥이프리미엄 같은 서버에 xe를 여러 개 설치 시 자동 로그인이 됩니다.  
XE파워 일반 게시판과 모바일 게시판의 목록수를 다르게 할 수 있나요? [1] 2013.06.25 by 송동우
블루SKY 첨부권한 DB 보려면... [1] 2013.06.25 by 송동우
알제니브 Contact Us 모듈 폼 추가요소 전송문제.  
kingmaya contact us 로 이메일 보내게 되면 도착한 이메일 내용을 표 형식으로 편집해서 볼 수 있을까요.  
designers 메뉴를 아이프레임으로 넣는데 [1] 2013.06.25 by 송동우
블루SKY 아무나 무조건 첨부파일 다운권한주기 [1] 2013.06.25 by 송동우
김낙지 댓글 닉네임 색상은 어떻게 바꾸나요? [11] 2013.06.25 by 김낙지
S야옹이 xe 설치하는데 자꾸 이러네요.. [1] 2013.06.25 by 송동우