contact form 테마와 최신글 메일 알림을 사용하고 있습니다.
Kboard_document_insert 훅을 이용해서 작성자에게도 작성글에 대하여 이메일 알림을 주고 있습니다.
kboardMail 클래스를 사용하여 메일링을 하려 했지만 콘텐츠 부분이 계속 비고, 메일이 제대로 전송되지 않아 wp_mail을 직접 호출하여 전송하도록 하였고, 정상적으로 전송이 됩니다.
[기존 작성자 메일링 코드]
add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 2);
function my_kboard_document_insert($content_uid, $board_id){
$document = new KBContent();
$document->initWithUID($content_uid);
if($document->option->email && ($board_id == 5 || $board_id == 6)){
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
$url = new KBUrl();
$mail = new KBMail();
$mail->to = $document->option->email;
$mail->title = '글이 등록되었습니다.';
$mail->content = $document->content;
$mail->url = $url->getDocumentRedirect($document->uid);
$mail->send();
}
}
Mail Log 플러그인 활용하여 상태를 본 결과
작성자 대상 메일까지는 입력이 되는데, 본문 내용이 첨부되지 않고, 전송 또한 되지 않습니다.
https://imgur.com/a/WqDBRhj
[작성자 메일링 코드]
add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 3);
function my_kboard_document_insert($content_uid, $board_id, $content){
$document = new KBContent();
$document->initWithUID($content_uid);
if($document->option->email && ($board_id == 5 || $board_id == 6)){
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
$urlObject = new KBUrl();
$url = $urlObject->getDocumentRedirect($content_uid);
$url_name = __('Go to Homepage', 'kboard');
$document->initAttachedFiles();
$to = $content->option->email;
$title = apply_filters('kboard_latest_alerts_subject', '['.__('KBoard new document', 'kboard').'] '.$document->getBoard()->board_name.' - '.$document->title, $document);
$attachments = apply_filters('kboard_latest_alerts_attachments', $document->getMailAttachments(), $document);
$message = apply_filters('kboard_latest_alerts_message', $document->getDocumentOptionsHTML() . $document->content, $document);
$message .= '<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="center">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><a href="' . esc_url($url) . '" target="_blank">' . ($url_name ? $url_name : $url) . '</a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail($to, $title, $message, $headers, $document->attachments);
}
}
하지만 기존에 전송이 잘 되던 관리자 최신 이메일 전송 기능에서
이메일은 정상적으로 전송이 되는데 글에 삽입된 그림의 링크에 \ 가 붙어서 전송이 되어
이미지 부분이 출력이 되지 않습니다 (위 코드로 작성자에게 보낸 메일 본문에는 잘 표시가 됩니다.)
어떤 부분이 문제가 되는지 잘 모르겠습니다.
에디터 문제는 아닌것 같습니다 현재 사용중인 에디터는 TinyMCE Advanced 입니다.
https://imgur.com/a/pDKbR2s
https://imgur.com/a/aWKJKeS
[KboardContent.class.php]
https://imgur.com/a/OWWrV3z
안녕하세요~^^
이메일 전송 시 KBoard 플러그인에서 별도로 역슬래시를 추가하고 있지 않습니다.
사용 중이신 테마나 다른 플러그인 쪽 문제는 아닌지 확인해보시겠어요?
잠시 다른 테마로 바꿔서 확인해보시고
다른 플러그인을 모두 비활성화한 상태에서도 테스트해보시겠어요?
본문에 첨부된 이미지를 메일 내용에 표시하는 방법은
아래의 링크도 참고 부탁드립니다.
https://www.cosmosfarm.com/threads/document/29419
고맙습니다.