상담 스킨 관련 문의 드립니다.

안녕하세요. 항상 케이보드를 잘 사용하고 있습니다.

한가지 문의가 있어 작성 합니다.

상담 스킨 사용중 "답변완료" 로 게시글이 수정 되었을때 글작성시 등록한 이메일로 게시글 내용을 메일 발송 할수 있는 방법이 있을까요?

확인 부탁 드립니다. 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    KBoard 에스크원 상담 스킨과 KBoard 인사이드 상담 스킨에서 상태는

    카테고리2 기능을 활용하고 있습니다.

     

    KBoard 플러그인에 기본으로 내장된 kboard_content_update 자바스크립트 함수로

    상태(카테고리2)를 업데이트하고 있습니다.

     

    kboard_document_update 액션과 wp_mail 함수를 활용하시면

    카테고리 변경 시 메일을 보내실 수 있습니다.

     

    KBoard 액션과 필터는

    아래의 링크를 참고해보세요.

    https://www.cosmosfarm.com/products/kboard/hooks

     

    wp_mail 함수에 대한 자세한 내용은

    아래의 링크를 참고해보세요.

    https://developer.wordpress.org/reference/functions/wp_mail/

    고맙습니다.

  • 안녕하세요.

    wp_mail 함수를 활용하여 html 태그를 메일로 전송하시려면

    헤더 정보를 추가해주셔야 합니다.

    첨부파일을 <a> 태그로 메일 내용에 포함되게 하시려면

    아래의 코드를 활용해보시겠어요?

    add_action('kboard_document_update', 'my_kboard_document_update', 10, 4);
    function my_kboard_document_update($content_uid, $board_id, $content, $board){
    	if($board_id == '1' && $content->category2 == '처리완료'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->cus_mail;
    		$title = $content->title;
    		$message = $content->content;
    		
    		if($content->isAttached()){
    			$message .= '첨부파일<br>';
    			$url = new KBUrl();
    			foreach($content->getAttachmentList() as $key=>$attach){
    				$message .= '<a href="'.$url->getDownloadURLWithAttach($content->uid, $key).'">'.$attach[1].'</a><br>';
    			}
    		}
    		
    		$headers = array('Content-Type: text/html; charset=UTF-8');
    		
    		wp_mail($to, $title, $message, $headers);
    	}
    }

    고맙습니다.

  • 안녕하세요.

    첨부파일은 KBoard 플러그인에서 첨부파일 업로드 기능을 이용하신 건지요?

    저희가 커뮤니티에서 코드를 일일이 만들어 드리는 건

    현실적으로 불가능합니다.

    wp_mail 함수는 워드프레스 내장 함수로 메일을 보낼 때 사용됩니다.

    자세한 내용은 아래의 링크를 참고 부탁드립니다.

    https://developer.wordpress.org/reference/functions/wp_mail/

    고맙습니다.

  • 안녕하세요~^^

    wp_mail 함수에 첨부파일을 적용해서 메일을 보내실 수 있습니다.

    KBoard 게시글 수정 시 특정 카테고리로 설정했을 때 첨부파일과 메일을 보내시려면

    아래의 코드를 활용해보세요.

    add_action('kboard_document_update', 'my_kboard_document_update', 10, 4);
    function my_kboard_document_update($content_uid, $board_id, $content, $board){
    	if($board_id == '1' && $content->category2 == '처리완료'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->cus_mail;
    		$title = $content->title;
    		$message = $content->content;
    		
    		wp_mail($to, $title, $message, '', $content->getMailAttachments());
    	}
    }

    위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.

    처리완료 부분은 실제 카테고리2로 적용해보시겠어요?

    고맙습니다.

  • 안녕하세요.

    wp_mail 함수에 직접 입력했을 땐 정상적으로 메일이 전송된다면

    입력 필드의 메타키가 올바르게 입력되었는지 확인해보시겠어요?

    wp_mail 함수 위에 아래의 코드를 추가하시면

    실제 값들을 확인해보실 수 있습니다.

    echo $to . '<br>';
    echo $title . '<br>';
    echo $content;
    exit;

    위의 코드는 확인용이기 때문에 확인 후에는 지워보시겠어요?

    고맙습니다.

  • 안녕하세요.

    메일 발송과 특정 게시판 id 값이 들어가는 것과는 관련이 없습니다.

    특정 게시판에만 적용하시려면

    아래의 코드로 교체해보세요.

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($content_uid, $board_id, $content, $board){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->kr_ki009;
    		$title = $content->option->kr_ki001;
    		$content = $content->option->kr_ki002;
    		wp_mail($to, $title, $content);
    	}
    }

    kr_ki001 입력 필드는 메일의 제목 부분에 해당하며

    kr_ki002 입력 필드는 메일의 내용 부분에 해당하는지요?

     

    저희 쪽 테스트 서버에서 위의 코드 및 입력 필드로 테스트해보니

    정상적으로 메일을 전송되는 것을 확인했습니다.

    고맙습니다.

  • 안녕하세요.

    kboard_document_update 액션은 KBoard 게시글 수정 시 동작하도록 설정되어 있습니다.

    이전 댓글에 안내해드린 코드는

    1번 게시판에서 카테고리2가 처리완료로 설정되어 있을 경우 메일을 보내는 코드입니다.

    메일 내용은 $message 변수에 게시글 본문 내용인 $content->content를 넣어서 보내게 됩니다.

    게시글 본문 내용이 아닌 다른 필드라면 다른 필드로 적용해서 확인해보시겠어요?

    고맙습니다.

  • 안녕하세요.

    말씀하신 새글알림 메일은

    KBoard 플러그인 최신글 이메일 알림 기능을 말씀하시는 건지요?

    최신글 이메일 알림 기능을 비활성화한 상태에서도 확인해보시겠어요?

    비활성화한 상태에서는 정상적으로 동작한다면

    실제 메일을 보내는 기능은 서버 설정에 의존하기 때문에

    서버 관리자 또는 웹호스팅 업체에 문의해보셔야 할 듯합니다.

    고맙습니다.

  • 안녕하세요. 이전글 검색하여 

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4); 
      function my_kboard_document_insert($content_uid, $board_id, $content, $board){
      $to = $content->option->email; 
      $title = $content->title; 
      $content = $content->content; 
      wp_mail($to, $title, $content); 
      }

    코드를 적용 하였으나, 메일 발송이 되지 않는것 같아 문의 드립니다.

    해당 게시판의 입력 내용중 메일 부분을 추가 하여 입력 받는데 해당 메일 주소의 값을 어느 부분에 적용을 해야 할까요.

    도움 부탁 드립니다.

  • 안녕하세요.

    코드를 올려주실 땐 반드시 에디터의 코드 스니펫 삽입 기능을 이용해주세요.

    올려주신 코드 중 아래의 코드를

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 1); 

    아래의 코드로 교체해서 확인해보시겠어요?

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4); 

    위의 코드에서 4부분은 my_kboard_document_insert 함수의 파라미터 개수입니다.

     

    워드프레스 디버그 모드를 활성화하시면 에러 메시지를 확인해보실 수 있습니다.

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

     

    그래도 메일 전송이 원활하지 않다면

    워드프레스 이메일 전송 문제 해결 방법을 참고해보시겠어요?

    고맙습니다.

  • 안녕하세요. 

    도움주신 코드를 활용하여 첨부파일 링크 메일 발송에 성공했습니다.

    역시 메일로 수신된 링크 클릭시 해당 "이 페이지는 외부에서의 접근을 제한하고 있습니다." 오류도 이전스레드 검색시나오는 자료를 통해 처리하였습니다.

    if(!isset($_GET['kboard-file-download-nonce']) || !wp_verify_nonce($_GET['kboard-file-download-nonce'], 'kboard-file-download')){
    			if(!wp_get_referer()){
    				wp_die(__('This page is restricted from external access.', 'kboard'));
    			}
    		}

    위항목 주석 처리하니 정상 적으로 접근 되네요.

     

    한가지 오류(?)가 있으 문의 드립니다.

    현재 게시판에 첨부파일을 최대 2개까지 허용하고 있는데 첨부파일 등록후 수정완료시 메일은 정상 발송되나

    첨부파일 링크는 정상적으로 가지않고 글수정을 2번째 했을때 첨부파일 링크가 정상 수신 되는것을 확인 했습니다.

    1. 첨부파일 등록 글수정 -> 메일 발송 정상이나 첨부파일 링크 없음

    2. 재 글수정시 -> 메일발송 정상이며, 첨부파일 링크도 정상 삽입

    3. 첨부파일 2번째 등록 후 글수정 -> 첨부파일 1번 링크만 정상 삽입

    4. 재 글수정시 -> 1번, 2번 첨부파일 링크 정상 삽입

    이런 현상이 나타나고 있습니다.

     

    추가로 메일내용에 항상 "빈내용" 이라는 문구가 함께 들어오는데 이부분을 삭제할수 있는 방법은 없을까요?

     

  • 안녕하세요.

    도움주신 코드 

    add_action('kboard_document_update', 'my_kboard_document_update', 10, 4);
    function my_kboard_document_update($content_uid, $board_id, $content, $board){
    	if($board_id == '1' && $content->category2 == '처리완료'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->cus_mail;
    		$title = $content->title;
    		$message = $content->content;
    		
    		wp_mail($to, $title, $message, '', $content->getMailAttachments());
    	}
    }

    사용시 메일 내용에 첨부파일은 포함되지않고 "빈내용" 이라는 내용으로만 메일이 발송 되고 있습니다.

    첨부 파일이 발송이 되지않는다면, 해당파일의 url 링크를 만이라도 메일로 발송되도록 하고 싶은데요.

    a테그가 적용된 링크 발송이 가능 할까요?

  • 안녕하세요.

    케이보드의 첨부파일 업로드 기능으로 사용 중입니다.

    첨부파일의 URL 경로만이라도 메일 콘텐츠로 보내졌으면 하는데, 그것도 불가능 할까요?

  • 커스텀 한 스킨에 

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 1); 
      function my_kboard_document_insert($content_uid, $board_id, $content, $board){
      $to = $content->option->kr_ki009; 
      $title = $content->option->kr_ki001; 
      $content = $content->option->kr_ki002; 
      wp_mail($to, $title, $content); 
      }

    적용한 코드입니다.

    새글 작성시 이메일 발송테스트 중이나 메일 발송이 되고 있지 않습니다.

    도움 부탁 드립니다.

  • 안녕하세요. 알려주신 코드로 적용을 하였습니다.

    카테고리2 선택 항목(처리완료) 등의 옵션 값에 대한 메일 발송은 정상적이나 메일발송시 첨부파일의 경우 포함되지않고 '빈내용' 이라는 문구로 내용수신이 됩니다.

    다른 처리 방법은 없을까요?

  • 메일발송 문제는 몇일을 해매다 단순한 버젼업그레이드로 해결이 되었습니다.ㅠㅠ 다시한번 도움 감사드립니다.

    몇 가지 추가 문의 사항이 있어 문의드립니다.

    메일 발송시 콘텐츠를 첨부파일 내용(파일 url) 으로 처리가 가능할까요?

    add_action('kboard_document_update', 'my_kboard_document_update', 10, 4);
    function my_kboard_document_update($content_uid, $board_id, $content, $board){
    	if($board_id == '8'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->cus_mail;
    		$title = $content->title;
    		$content = $content->category2;  ->  $content = $content->attach as $key=>$attach);
    		//wp_mail('cdhnol@naver.com', 'test data', 'test content');
    		wp_mail($to, $title, $content);
    	}
    }
    

    상기 내용으로 콘텐츠 부분만 수정을 하면 될지 문의 드립니다. 

    우선 적용후 테스트시 정상작동은 하지 않고 있습니다,

     

    추가로

    ask-one 상담중 category2를 사용하여 특정 상테에서만 발송 되는 부분을 추가 하고 싶습니다.

    현재 category2 의 옵션은

    <option value="미확인"<?php if($content->category2 == '미확인'):?> selected<?php endif?>>미확인</option>
    <option value="처리중"<?php if($content->category2 == '처리중'):?> selected<?php endif?>>처리중</option>
    <option value="처리완료"<?php if($content->category2 == '처리완료'):?> selected<?php endif?>>처리완료</option>
    <option value="취소완료"<?php if($content->category2 == '취소완료'):?> selected<?php endif?>>취소완료</option>

    상기 내용으로 사용중입니다.

     

    도움 부탁 드립니다.

  • 안녕하세요. 금일 안내 해주신 코드수정후 테스트 결과 동일하게 메일 발송이 되지 않고 있습니다.

    새글알림 메일로는 동일하게 들어오고 있으나 추가한 부분인 메일주소 입력 된 부분으로는 발신이 되지 않네요.

    이부분 도움 부탁 드립니다.

  • 안녕하세요. 얼려주신 코드등을 활용하여 글 수정시 메일 발송 되도록 코드를 만들어 테스트 중입니다.

    add_action('kboard_document_update', 'my_kboard_document_update', 10, 4);
    function my_kboard_document_update($content_uid, $board_id, $content, $board){
    	if($board_id == '8'){ // 실제 게시판 id로 적용해주세요.
    		$to = $content->option->cus_mail;
    		$title = $content->option->kr_ki001;
    		$content = $content->option->kr_ki002;
    		wp_mail('cdhnol@naver.com', 'test data', 'test content');
    		//wp_mail($to, $title, $content);
    	}
    }

    wp mail 부분을 강제로 적용하여 테스트시 메일 발송이 정상적이나 실제 등록 db(메일주소,콘텐츠, 제목)등의 적용시에 메일이 발송 되지 않는것으로 보입니다.

    db 데이터 쪽에는 해당 값의 정상적으로 저장되고 있음을 확인 했습니다.

    혹시 커스텀시 옵션으로 추가한  "cus_mail", "kr_ki001" 등의 문제일수 있을까요?

    cus_mail -> 이메일주소 

    kr_ki001 -> 제목

    kr_ki002 -> 콘텐츠

    입니다.

  • 안녕하세요. 알려주신 내용으로 최신글 이메일 알림 해제후 테스트 결과 동일하게 메일 발송이 되지 않는것으로 확인 했습니다.

    서버에서의 메일 발송 부분은 문제 없는듯 합니다.

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4); 
      function my_kboard_document_insert($content_uid, $board_id, $content, $board){
      $to = $content->option->kr_ki009; 
      $title = $content->option->kr_ki001; 
      $content = $content->option->kr_ki002; 
      wp_mail($to, $title, $content); 
      }

    특정 게시판 id 값이 들어가야 하는 문제는 아닐까요?
    확인 부탁 드립니다.
     

    입력 필드 이메일 추가 커스텀 내용은 

    <div class="kboard-attr-row">
    			<label class="attr-name"><?php echo __('* 이메일', 'kboard')?></label>
    			<div class="attr-value"><input type="text" name="kboard_option_kr_ki009" value="<?php echo $content->option->kr_ki009?>" placeholder="<?php echo __('', 'kboard')?>" required></div>
    		</div>

    입니다.

     

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요