묻고답하기

        /**
         * @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 남기남
Tbworld 회원등급별 게시물 댓글 열람 제한하는 방법은? [1] 2013.06.24 by 송동우
구름나무바위 게시판 갤러리 스킨 설정 값에 0을 입력하면 적용은 되는데 값은 default값으로 나옵니다. [1] file 2013.06.24 by sejin7940
쿡래빗 클릭시 포인트 증가 시키기.. [1] 2013.06.24 by sejin7940
BonaSera 댓글이 관리자메일로 오긴하는데, 비회원의 댓글은 안오는 상황 질문 [2] 2013.06.24 by 송동우
연시랑 쪽지보내기 할때 메일발송 체크 file  
Fidelity 위젯 페이지에 html 파일 로드 [1] 2013.06.24 by 구름나무바위
웅솔몽둥이 페이지 로딩 문제 [1] 2013.06.24 by 구름나무바위
Spes 트래픽을 계속 몰아서 사이트를 먹통을 만드는데 어떻게 해야하나요? [2] 2013.06.24 by 구름나무바위
Crejer 게시판 관리자에서 분류목록이 뜨질 않습니다. [1] file 2013.06.24 by Crejer
ennaldle223 캐시파일 재생성을 했더니 접속이안됩니다..  
designers 사이트메뉴에서 순서는 [1] 2013.06.24 by 송동우
구름* xe 설치 에러요.  
연시랑 쪽지 모듈에 대해 질문드립니다. [1] 2013.06.24 by 송동우
이지매니아 다국어 사용시 확장변수는 공유가 가능할까요? [1] 2013.06.24 by 송동우
블루SKY 기본게시판 비회원 첨부다운로드 안됨.  
6/45 주소가 이상해요.. 뭐가 잘못된건가여? [1] file 2013.06.24 by Fidelity
쿵푸팬더 이 사이트 레이아웃 비슷한거 알고 있으신가요? [1] 2013.06.24 by 윤씨
오후7시40분 자꾸 스킨값을 입력하는데요..ㅠㅠ [1] 2013.06.24 by 윤씨
블루SKY 로그인 하지 않고 파일다운로드 권한 주기 [2] 2013.06.24 by 블루SKY
짝사랑 한 사이트에 여러 도메인에 여러개 연결하는 방법..  
구름나무바위 XE 문법 잘 아시는 분.. 간단한 문법 답변 좀 부탁드립니다. [1] 2013.06.23 by sejin7940
아싸리방가 레이아웃 메뉴바 수정에 대해서 문의드립니다  
Lansi AJAX 통신시 애드온과 충돌이 납니다  
라돌체 위젯이 입력 내용과 출력 내용이 약가이 다르립니다. [1] file 2013.06.23 by 구름나무바위
손진권 루트폴더에 대한 질문 [1] file 2013.06.23 by 구름나무바위
XE만세 j쿼리 버전을 바꾸어 주려면 어떻게 하면 될까요? [1] 2013.06.23 by 송동우
Fidelity 최근 게시물 롤링 위젯이 있나요? [1] 2013.06.23 by 퍼니엑스이
yoyoya 회원관리 폼 관련... [1] file 2013.06.23 by sejin7940
민채아빠 xe query group 다중으로 사용 방법 [1] 2013.06.23 by sejin7940
fafefaefe ftp 설정에서 아이피를 변경하면 변경이안돼요 [2] 2013.06.23 by BluesPia[꾸야]