웹마스터 팁
게시판 글작성 선택적 메일보내기 - 확장변수 이용
2009.10.28 09:54
게시판 설정에 보면은
관리자 메일이라고 있습니다
해당 글이 관리자에게 발송되는 기능이죠
그런데 이게 음.... 한번 설정해 두면 누가 받고 있는지 모르고....
그리고 특정한 사람한테도 또 받게 해두기 싫고 머 그런 생각에서
열심히 수정해서 나름 성공 시킨것을 공유 하려고 합니다
0. 관리자메일 부분에 아무 메일이나 하나 넣어 두세요
1. 등록할 확장변수 2개
- 확장변수 이름이나 순서는 상관 없습니다 하지만 입력항목 이름은 꼬옥 아래와 같이 해주세요(소스 수정 하시면 변경 하셔도 됩니다)
2. /modules/board/board.controller.php 수정
// 문제가 없고 모듈 설정에 관리자 메일이 등록되어 있으면 메일 발송
if($output->toBool() && $this->module_info->admin_mail) {
....................... 이부분에 소스를 넣어 시면 됩니다
$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();
}
}
}
3. 입력할 소스
// 문제가 없고 모듈 설정에 관리자 메일이 등록되어 있으면 메일 발송
if($output->toBool() && $this->module_info->admin_mail) {
$oMail = new Mail();
$oMail->setTitle($obj->title);
//확장변수 이용 메일 발송 시작
$extra_keys = $oDocumentModel->getExtraKeys($obj->module_srl);
/**
** 확장변수를 이용한 선택적 메일발송
** 0. 관리자 메일 1건 이상의 메일 기재
** 1. 확장변수 이름이 <메일발송-수신> 인 항목을 발송함
** 2. 다중선택 방식으로 기재함(수신인을 선택하며 소스단에서 변경하여 메일 발송)
** - 다중선택시 문자열 구분을 < |@| > 하므로 < , > 변경함
** 3. 변경된 수신인을 $this->module_info->admin_mail 항목으로 변경(메일이 발송되게 됨!!)
**/
if(count($extra_keys)) {
foreach($extra_keys as $idx => $extra_item) {
if($extra_keys[$idx]->name == '메일발송-수신') $value1 = trim($obj->{'extra_vars'.$idx});
if($extra_keys[$idx]->name == '메일발송-참조') $value2 = trim($obj->{'+
'extra_vars'.$idx});
}
}
/**
** 해당문자열을 < |@| > 을 < , > 변경
**/
$value1 = str_replace("|@|",",",$value1);
$value2 = str_replace("|@|",",",$value2);
$value_1 = str_replace("홍길동1","aaaa@aaa.net",$value1);
$value_1 = str_replace("홍길동2","aaaa@aaa.net",$value_1);
$value_2 = str_replace("홍길동1","aaaa@aaa.net",$value2);
$value_2 = str_replace("홍길동2","aaaa@aaa.net",$value_2);
$content_plus = "받는 사람 : ".$value1."<br />참조 : ".$value2."<br />--------------------------------------------------------------------------------------------------------------------<br />";
$t_content = $obj->content;
$obj->content = $content_plus;
$obj->content .= $t_content;
$this->module_info->admin_mail = $value_1.",".$value_2;
//모든 게시판
$oMail->setContent( sprintf("<a href=\"%s\"><a href=\"%s\"><img src='http://creamhouse.wo.tc/xe/files/go.gif'></a></a><br/>\r\n<div style='font-size: 12px; padding-left: 15px;'>%s</div>", getFullUrl('','document_srl',$obj->document_srl), getFullUrl('','document_srl',$obj->document_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();
}
}
}
대략 이런겁니다 (설명이 안되어서 ㅡ.ㅢ;ㅣㅣ)
특정 확장변수를 체크해서 그 확장변수가 있으면
그 확장변수의 내용에 있는 이름들을 가져와서
미리 지정된 이름이랑 매칭해서 메일을 보내게 됩니다 ㅡㅡa
음 쉽게 설명 하려고 했는데 ㅡ.ㅡ;; 잘 됐나 모르겠네요...
그럼 (__)
전 이제 메일 쓰면 파일까지 자동으로 나타나게 하는거 연구 하려고 하는데
미리 구현 하신분 게시면 도움을
댓글 2
제목 | 글쓴이 | 날짜 |
---|---|---|
mysql 을 이용한 사용자 인증 4 (index.htm 인증후 바로 넘기기) | 이성헌 | 2005.12.15 |
mysql 이용한 사용자 인증 3 (index.htm 파일) | 이성헌 | 2005.12.15 |
mysql 이용한 사용자 인증 2 (auth.inc 파일) | 이성헌 | 2005.12.15 |
mysql 을 이용한 사용자 인증 (통합 설명) | 이성헌 | 2005.12.15 |
아파치 httpd.conf 2차 설정본 - php 연동 | 이성헌 | 2005.12.15 |
계정 사용량 알아보기 | 이성헌 | 2005.12.15 |
제로보드 data 파일의 모드 변경 | 이성헌 | 2005.12.15 |
php 4.3.2 의 php.ini 내용 (내컴 설치본) | 이성헌 | 2005.12.15 |
apache httpd.conf 의 1차 설치본 - alias 사용 | 이성헌 | 2005.12.15 |
apache 인증에서 .htpasswd 의 내용. | 이성헌 | 2005.12.15 |
아파치 인증에서 .htaccess 의 내용. | 이성헌 | 2005.12.15 |
wo.to (유료서버) 의 아파치 폴더 인증 방법. | 이성헌 | 2005.12.15 |
아파치 인증-개인 컴퓨터 apache 서버 경우 | 이성헌 | 2005.12.15 |
자바스크립트 인증 | 이성헌 | 2005.12.15 |
zeroboard 아이디 , 비번 분실시 변경법. | 이성헌 | 2005.12.15 |
nWmail 서버 구축 방법- 자세한 문서는 w3ip.com 에 있음 | 이성헌 | 2005.12.15 |
apache 의 httpd.conf 에서 alias 사용례... | 이성헌 | 2005.12.15 |
mysql 사용법 요약 정리 | 이성헌 | 2005.12.15 |
iis+php+mysql+zeroboard 설치 [3] | 이성헌 | 2005.12.15 |
apache+php+mysql+phpmyadmin+zeroboard 설치 | 이성헌 | 2005.12.15 |