웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
회원가입 확장모듈, 환영쪽지를 끄면 메일이 안날아가는 문제수정.
2013.10.31 15:53
오랫동안 의뢰를주셨던 클라이언트분께서 회원가입확장모듈을 설치하였는데
가입환영쪽지와 메일을 다 켜야 두개다 날아가고 쪽지를끄면 메일이 안날아간다고하시더라구요..
@난다날아 님께서 개발하신건데 그럴리가.. 하며 소스를열어봤더니
function procSendWelcomeMessage($member_srl) {
$oJoinExtendModel = &getModel('join_extend');
$config = $oJoinExtendModel->getConfig();
if ($config->use_welcome != "Y") return;
// 관리자 정보
$oMemberModel = &getModel('member');
$admin_info = $oMemberModel->getMemberInfoByUserID($config->admin_id);
$admin_member_srl = $admin_info->member_srl;
// 가입자 정보
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
// 쪽지 발송
if (strlen($config->welcome_title)) $title = $config->welcome_title;
else $title = cut_str($this->unhtmlentities(strip_tags($config->welcome)), 40);
$content = $config->welcome;
$oCommunicationController = &getController('communication');
$oCommunicationController->sendMessage($admin_member_srl, $member_srl, $title, $content, false);
// 메일 발송
if ($config->use_welcome_email != "Y") return;
$title = $config->welcome_email_title;
$content = $config->welcome_email;
$oMail = new Mail();
$oMail->setTitle($title);
$oMail->setContent($content);
$oMail->setSender($admin_info->user_name, $admin_info->email_address);
$oMail->setReceiptor($member_info->user_name, $member_info->email_address);
$oMail->send();
// // 쪽지가 가든 말든 일단 보내고 본다!
// $receiver_args->message_srl = getNextSequence();
// $receiver_args->related_srl = 0;
// $receiver_args->list_order = $receiver_args->message_srl*-1;
// $receiver_args->sender_srl = $member_srl;
// $receiver_args->receiver_srl = $member_srl;
// $receiver_args->message_type = 'R';
// $receiver_args->title = cut_str($this->unhtmlentities(strip_tags($config->welcome)), 40);
// $receiver_args->content = $config->welcome;
// $receiver_args->readed = 'N';
// $receiver_args->regdate = date("YmdHis");
//
// executeQuery('communication.sendMessage', $receiver_args);
//
// // 받는 회원의 쪽지 발송 플래그 생성 (파일로 생성)
// $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($member_srl);
// FileHandler::makeDir($flag_path);
// $flag_file = sprintf('%s%s', $flag_path, $member_srl);
// $flag_count = FileHandler::readFile($flag_file);
// FileHandler::writeFile($flag_file, ++$flag_count);
}메일보내는 부분과 쪽지보내는부분이 하나의 Function에서 동작하는데
if ($config->use_welcome != "Y") return;
쪽지를꺼버리면 밑에 메일루틴은 아에 무시하고 그냥 함수가 종료되어버리더군요..
그래서 쪽지를 건너뛰더라도 메일함수를 체킹할수있도록 수정하였습니다.
/**
* @brief 가입 환영 쪽지 발송
**/
function procSendWelcomeMessage($member_srl) {
$oJoinExtendModel = &getModel('join_extend');
$config = $oJoinExtendModel->getConfig();
// 관리자 정보
$oMemberModel = &getModel('member');
$admin_info = $oMemberModel->getMemberInfoByUserID($config->admin_id);
$admin_member_srl = $admin_info->member_srl;
// 가입자 정보
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
//쪽지를 끄면 메일이안가는부분 수정 by Xiso
if ($config->use_welcome == "Y"){
// 쪽지 발송
if (strlen($config->welcome_title)) $title = $config->welcome_title;
else $title = cut_str($this->unhtmlentities(strip_tags($config->welcome)), 40);
$content = $config->welcome;
$oCommunicationController = &getController('communication');
$oCommunicationController->sendMessage($admin_member_srl, $member_srl, $title, $content, false);
}
// 메일 발송
if ($config->use_welcome_email == "Y"){
$title = $config->welcome_email_title;
$content = $config->welcome_email;
$oMail = new Mail();
$oMail->setTitle($title);
$oMail->setContent($content);
$oMail->setSender($admin_info->user_name, $admin_info->email_address);
$oMail->setReceiptor($member_info->user_name, $member_info->email_address);
$oMail->send();
}
return;
}뭐.. 큰작업도아니구 해당 function을 통째로 바꾸어주시면되겠습니다.
중복일지도 모르겠네요;