Extra Form
PHP PHP 7.0
CMS XpressEngine

현재 홈페이지에서 새글 알림과 댓글 알림을 사용하고 있는데, 문자 전송시 단문 전송은 되는데 장문 전송은 되지 않아서

혹시 장문 전송해보신분 계실까요?

 

 

sms.png

문자 방식에 장문가능 부분에 체크를 했는데도 전송되는 문자가 단문 형태로만 와서...

 

 

  • profile
    장문가능을 선택했을때 단문으로 문자가 잘리나요?

    해당 기능은 장문으로 발송가능한 상태를 뜻합니다.

    따라서 글자갯수가 많아질 경우 (문자 용량 기준 90바이트이상)장문으로 자동으로 변경되는 서비스입니다.

    단문으로 전송되는 문제가 단순히 90바이트를 넘지 않을 경우 단문으로 전송되지만, 넘을경우 장문으로 넘어가는 형태입니다.

    따라서 증상 설명해주시는것이 아주 중요해요 ㅠㅠ..
  • profile ?
    람보님이 직접 답변주셔서...감사합니다..
    네..현재 장문으로 발송 선택을 했는데..단문으로 전송이 됩니다.

    필요하시면 현재 테스트 계정 정보 알려 드릴수 있습니다.
  • profile ?
    아이고..죄송합니다. 혹시나 해서 모듈을 다시 받아서 업로드 했더니...장문이 정상적으로 오네요.
    신경쓰게 해드렸네요.
  • profile ?

    sms-댓글체크.png

     

     

    한가지만 더 질문 드려 봅니다.

    현재 위 이미지 처럼 수신번호 설정을 게시판 글작성시 확장변수값(전화번호 형식)으로 설정을 해 놓았습니다.

    그러면 댓글이 달릴 경우 그 확장변수에 기록된 전화번호로 문자가 전송이 된다는 뜻 아닌지요?

    현재는 관리자 번호로만 장문 댓글이 전송이 되네요.

     

    이번에는 2개 사이트에서 테스트를 해봤습니다.

     

    시간되실때 답변 좀 부탁드려봅니다.

  • ? profile
    확장변수를 통해서 게시글작성자가 입력한 확장변수가 우선순위입니다.

    문자전송이 재대로 안되는 문제는 현재 저도 확인이 불가능하지만 일반적인 상황에서는 발송되는 것이 맞습니다. 하지만 회원님의 서버에서 관리자에게 문자 보낸다음 다음 작동을 하지 않는 것으로 보여집니다.
  • profile ?
    어제 소스를 확인해보니 notification.controller.php 파일에서 해당 작업을 처리하는 듯 하더군요.
    그런데 이상하게 관리자에게 보내는 코드는 잘가는데, 글작성자가 입력한 확장변수 값을 이용한 발송은 처리가 안되네요.

    function processNotification 에서 write_chek 부분을 빼고 function sendToWriter 에서 이 값을 function sendToAdministrator 값으로 바꿔서 테스트 해보니 발송이 2개가 전달되더라구요. 당연한 이야기 겠지만...ㅡㅡ;;



    function sendToWriter($mobileContent, $mailContent, $title, &$commentInfo, &$config)
    {
    // get the references of module MVC instances.
    $oMemberModel = &getModel('member');
    $oDocumentModel = &getModel('document');

    // get document info.
    $oDocument = $oDocumentModel->getDocument($commentInfo->document_srl);

    // writer's member_srl
    $writer_member_srl = $oDocument->getMemberSrl();
    // get member_info
    $member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl);

    $recipientNumberArray = $this->getRecipientNumberForWriter($member_info, $oDocument, $config);
    $senderNumber = $config->sender_phone;
    $recipientEmailAddress = $this->getEmailAddressForWriter($member_info, $oDocument, $config);
    $recipientName = $this->getWriterNickName($member_info, $oDocument);
    $senderEmailAddress = $config->email_sender_address;
    $senderName = $config->email_sender_name;
    if(!$senderEmailAddress) $senderEmailAddress = $commentInfo->email_address;
    if(!$senderName) $senderName = $commentInfo->nick_name;
    if(!$senderEmailAddress) $senderEmailAddress = $recipientEmailAddress;
    if(!$senderName) $senderName = $recipientName;

    $tmpObj = new stdClass();
    $tmpObj->article_url = getFullUrl('','document_srl', $commentInfo->document_srl);
    $tmpContent = $this->mergeKeywords($mailContent, $tmpObj);
    $tmpMessage = $this->mergeKeywords($mobileContent, $tmpObj);
    if(count($recipientNumberArray) > 0)
    {
    if(count($recipientNumberArray) >= 2 && $config->frist_number !== 'notuse' && $config->frist_number)
    {
    $this->sendMessages($recipientNumberArray[$config->frist_number], $senderNumber, $recipientEmailAddress, $recipientName, $senderEmailAddress, $senderName, $tmpMessage, $tmpContent, $title, $config, $commentInfo);
    }
    else
    {
    foreach($recipientNumberArray as $number)
    {
    $this->sendMessages($number, $senderNumber, $recipientEmailAddress, $recipientName, $senderEmailAddress, $senderName, $tmpMessage, $tmpContent, $title, $config, $commentInfo);
    }
    }
    }
    }




    function processNotification(&$config, &$commentInfo, &$module_info)
    {
    // get the reference of modules' instances.
    $oMemberModel = &getModel('member');

    // get document info.
    $oDocumentModel = &getModel('document');
    $oDocument = $oDocumentModel->getDocument($commentInfo->document_srl);
    $commentInfo->writer_nick_name = $oDocument->getNickName();
    $title = $oDocument->getTitleText();

    // message content
    $mobileContent = $this->mergeKeywords($config->content, $commentInfo);
    $mobileContent = $this->mergeKeywords($mobileContent, $module_info);
    $mobileContent = str_replace(" ", "", strip_tags($mobileContent));

    // mail content
    $mailContent = $this->mergeKeywords($config->mail_content, $commentInfo);
    $mailContent = $this->mergeKeywords($mailContent, $module_info);

    // send to administrator
    $this->sendToAdministrator($mobileContent, $mailContent, $title, $commentInfo, $config);

    // send to writer
    $writer_check = $this->checkNotificationRequiredForWriter($commentInfo, $oDocument, $config);

    debugPrint($writer_check);
    if($writer_check)
    {
    $this->sendToWriter($mobileContent, $mailContent, $title, $commentInfo, $config);
    }

    // send to upper replier
    $upperComment = $this->getUpperComment($commentInfo);
    if($upperComment && $this->checkNotificationRequiredForUpperReplier($commentInfo, $upperComment, $oDocument, $config))
    {
    $this->sendToUpperReplier($upperComment, $mobileContent, $mailContent, $title, $commentInfo, $config);
    }
    }


    소스가 이렇게 나와 있는데, 혹시 잘못된 부분이 있을가요?
    참고로 서버 문제인가 해서 여러개의 계정별로( 카페24, php 5점대 서버, php 7 점대 서버) 테스트를 해봤는데 다 안되어서...


    가능하시면 한번 살펴봐 주시면 감사하겠습니다.