RadarURL

조회 수 4623 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
WINDOWS 군에서 메일링 서비를 원할때.....

1. 먼저 SMTP를 설치 해야 합니다.
시작 -> 제어판 -> 프로그램 추가/제거 -> Windows 구성요소 추가/제거 -> 인터넷 정보 서비스(IIS)를 찾아 선택합니다.
-> 우측하단 쯤 [자세히] 버튼 클릭 -> SMTP Service 선택 -> 확인 (설치시 windows 설치 cd 가 있어야 합니다.)


2. SMTP 설정하기
시작 -> 제어판 -> 관리도구 -> 인터넷 관리 서비스 -> 기본 SMTP 가상서버 선택 후 마우스 오른쪽 버튼 -> 속성 선택
[일반]에서의 설정 : 할당되지 않은 주소 모두
[엑세스]에서의 설정 : 연결제어 -> 연결버큰 클릭 -> 허가됨 127.0.0.1
[엑세스]에서의 설정 : 릴레이제한 -> 릴레이 클릭 -> 허가됨 127.0.0.1
나머지 탭은 설정해도되고 안해도 되고....
설정이 모두 끝났으면 IIS서버 중지 후 다시 실행


3. windows디렉의 php.ini에서 smtp = 127.0.0.1으로 바꿉니다.


4. 제로보드에 있는 admin_sendmail_ok.php를 메모장등으로 엽니다.
모두 선택한 후 다음의 내용으로 덮어 씁니다.


<?

        include "lib.php";
        $connect=dbConn();

        $member=member_info();
        if(!$member[no]) Error("로그인후 사용하여주십시요",".javascriptwindow.close();");
        if($member[is_admin]>3) Error("관리자페이지를 사용할수 있는 권한이 없습니다",".javascriptwindow.close();");

        if(isblank($from)) Error("보내는 이의 mail을 적어주십시요",".javascriptwindow.close();");
        if(isblank($name)) Error("보내시는 분의 이름을 적어주십시요",".javascriptwindow.close();");
        if(isblank($subject)) Error("제목을 적어주십시요",".javascriptwindow.close();");
        if(isblank($comment)) Error("내용을 적어주십시요",".javascriptwindow.close();");

        $temp=mysql_fetch_array(mysql_query("select count(*) from $member_table where group_no='$group_no'",$connect));
        $total_member_num=$temp[0];

        if($cart) {
                $temp=explode("||",$cart);
                $s_que=" and ( no='$temp[1]' ";
                for($i=2;$i<count($temp);$i++)
                $s_que.=" or no='$temp[$i]' ";
                $s_que.=" )";
        } else {

        // 직접 선택이 없을때
                $s_que=stripslashes($s_que);
        }

        $temp=mysql_fetch_array(mysql_query("select count(*) from $member_table where group_no='$group_no' and mailing='1' $s_que",$connect));
        $total_member=$temp[0];

        if($total_member==0) Error("메일을 보낼 회원이 없습니다",".javascriptwindow.close();");
        $result=mysql_query("select email from $member_table where group_no='$group_no' and mailing=1 $s_que",$connect);

        mysql_close($connect);  

        $comment = stripslashes($comment);

        head( "onload=window.resizeTo(550,600); bgcolor=e0e0e0");
?>

<table border=0 cellpadding=2 cellspacing=1 width=100% bgcolor=e0e0e0 height=30>
<tr>
        <td align=center>
                <b><b><?=$total_member?></b> / (<?=$total_member_num?>) 명의 회원에게 메일링을 발송합니다.
        </td>
</tr>
</table>

<?
        $fault=0;
        $i=1;
        while($data=mysql_fetch_array($result)) {
                flush();
                echo".";

                if($data[email]) {
                        $temp=zb_sendmail($html, $data[email], $data[name], $from, $name, $subject, $comment);
                        if(!$temp) $fault++;
                }
                flush();
                if($i%100==0) {
                        echo"<br>";
                }
                $i++;
        }
        flush();
?>

<br><br>
<table border=0 cellspacing=0 cellpadding=2 width=100% bgcolor=e0e0e0>
<tr align=center>
<td height=30>
<br>

<?
        if($fault>0) echo $total_member." 명의 멤버중 $fault 명의 멤버에게 메일을 보내지 못하였습니다 ";
        else echo $total_member." 명의 멤버에게 메일을 보냈습니다 ";
?>

<br><br>
<input type=button value="Window Close" onclick=window.close() style=border-color:#b0b0b0;background-color:#3d3d3d;color:#ffffff;font-size:8pt;font-family:Tahoma;height:23px;><br><br>
</td></tr></table>

<?
        foot();
?>



5. 제로보드에 있는 lib.php를 메모장등으로 엽니다.

다음의 내용을 찾아 바꿉니다.

755번째 줄에서 시작하는

// 제로보드의 기본 설정 파일을 읽어오는 함수
        function getDefaultSetup() {
                global $_zb_path;
                $data = zReadFile($_zb_path."setup.php");
                $data = str_replace("<?/*","",$data);        
                $data = str_replace("*/?>","",$data);        
                $data = explode("\n",$data);
                $_c = count($data);
                unset($defaultSetup);
                for($i=0;$i<$_c;$i++) {
                        if(!ereg(";",$data[$i])&&strlen(trim($data[$i]))) {
                                $tmpStr = explode("=",$data[$i]);
                                $name = trim($tmpStr[0]);
                                $value = trim($tmpStr[1]);
                                $defaultSetup[$name]=$value;
                        }
                }
                if(!$defaultSetup[url]) $defaultSetup[url] = $HTTP_HOST;
                if(!$defaultSetup[sitename]) $defaultSetup[sitename] = $HTTP_HOST;
                if(!$defaultSetup[session_path]) $defaultSetup[session_path] = "data/__zbSessionTMP";
                if(!$defaultSetup[session_view_size]) $defaultSetup[session_view_size] = 512;
                if(!$defaultSetup[session_vote_size]) $defaultSetup[session_vote_size] = 256;
                if(!$defaultSetup[login_time]) $defaultSetup[login_time] = 60*30;
                if(!$defaultSetup[nowconnect_enable]) $defaultSetup[nowconnect_enable] = "true";
                if(!$defaultSetup[nowconnect_refresh_time]) $defaultSetup[nowconnect_refresh_time] = 60*3;
                if(!$defaultSetup[nowconnect_time]) $defaultSetup[nowconnect_tim] = 60*5;
                if(!$defaultSetup[enable_hangul_id]) $defaultSetup[enable_hangul_id] = "false";
                if(!$defaultSetup[check_email]) $defaultSetup[check_email] = "true";
                if(!$defaultSetup[memo_limit_time]) $defaultSetup[memo_limit_time] = 7;
                $defaultSetup[memo_limit_time] = 60 * 60 * 24 * $defaultSetup[memo_limit_time];
                
                return $defaultSetup;
        }

이 부분을 다음의 내용으로 바꿔 줍니다.

// 제로보드의 기본 설정 파일을 읽어오는 함수
        function getDefaultSetup() {
        global $_zb_path, $HTTP_HOST;
               $data = zReadFile($_zb_path."setup.php");
               $data = str_replace("<?/*","",$data);        
               $data = str_replace("*/?>","",$data);        
               $data = explode("\n",$data);
               $_c = count($data);
                unset($defaultSetup);
                for($i=0;$i<$_c;$i++) {
                        if(!ereg(";",$data[$i])&&strlen(trim($data[$i]))) {
                                $tmpStr = explode("=",$data[$i]);
                                $name = trim($tmpStr[0]);
                                $value = trim($tmpStr[1]);
                                $defaultSetup[$name]=$value;
                        }
                }
                if(!$defaultSetup[url]) $defaultSetup[url] = $HTTP_HOST;
                if(!$defaultSetup[sitename]) $defaultSetup[sitename] = $HTTP_HOST;
                if(!$defaultSetup[smtpaddress]) $defaultSetup[smtpaddress] = "127.0.0.1";
                if(!$defaultSetup[session_path]) $defaultSetup[session_path] = "data/__zbSessionTMP";
                if(!$defaultSetup[session_view_size]) $defaultSetup[session_view_size] = 512;
                if(!$defaultSetup[session_vote_size]) $defaultSetup[session_vote_size] = 256;
                if(!$defaultSetup[login_time]) $defaultSetup[login_time] = 60*30;
                if(!$defaultSetup[nowconnect_enable]) $defaultSetup[nowconnect_enable] = "true";
                if(!$defaultSetup[nowconnect_refresh_time]) $defaultSetup[nowconnect_refresh_time] = 60*3;
                if(!$defaultSetup[nowconnect_time]) $defaultSetup[nowconnect_tim] = 60*5;
                if(!$defaultSetup[enable_hangul_id]) $defaultSetup[enable_hangul_id] = "false";
                if(!$defaultSetup[check_email]) $defaultSetup[check_email] = "true";
                if(!$defaultSetup[memo_limit_time]) $defaultSetup[memo_limit_time] = 7;
                $defaultSetup[memo_limit_time] = 60 * 60 * 24 * $defaultSetup[memo_limit_time];
                
                return $defaultSetup;
        }


946번째 줄에서 시작하는
        
// 메일 보내는 함수
        function zb_sendmail($type, $to, $to_name, $from, $from_name, $subject, $comment, $cc="", $bcc="") {
                $recipient = "$to_name <$to>";

                if($type==1) $comment = nl2br($comment);

                $headers = "From: $from_name <$from>\n";
                $headers .= "X-Sender: <$from>\n";
                $headers .= "X-Mailer: PHP ".phpversion()."\n";
                $headers .= "X-Priority: 1\n";
                $headers .= "Return-Path: <$from>\n";

                if(!$type) $headers .= "Content-Type: text/plain; ";
                else $headers .= "Content-Type: text/html; ";
                $headers .= "charset=euc-kr\n";

                if($cc)  $headers .= "cc: $cc\n";
                if($bcc)  $headers .= "bcc: $bcc";

                $comment = stripslashes($comment);
                $comment = str_replace("\n\r","\n", $comment);

                return mail($recipient , $subject , $comment , $headers);

        }

이 부분을 다음의 내용으로 수정합니다.

        function zb_sendmail($type, $to, $to_name, $from, $from_name, $subject, $comment, $cc="", $bcc="") {

                global $HTTP_HOST, $_zbDefaultSetup;

                $sendmail_hostname=$_zbDefaultSetup[smtpaddress];

                $fp = fsockopen($sendmail_hostname, 25, &$errno, &$errstr, 30);

                if(!$fp) Error("Sendmail 연결시 에러가 발생했습니다. <Br><br>$errstr ($errno)");

                fgets($fp, 128);
                fputs($fp, "helo $_zbDefaultSetup[hostname]\r\n");
                fgets($fp, 128);

                fputs($fp, "mail from: <$from>\r\n");
                $retval[0] = fgets($fp, 128);
                
                fputs($fp, "rcpt to: <$to>\r\n");
                $retval[1] = fgets($fp, 128);

                fputs($fp, "data\r\n");
                fgets($fp, 128);
                
                //fputs($fp, "Return-Path: 자신의메일@어쩌구.net\r\n");
                
                fputs($fp, "From: $from_name <$from>\r\n");

                fputs($fp, "To: $to_name <$to>\r\n");
                fputs($fp, "Subject: $subject\r\n");
                
                if($type==2) $content= "Content-Type: text/html; ";
                elseif($tyep==1) {
                        $content.= "Content-Type: text/html; ";
                        $comment=nl2br($comment);
                } else $content.= "Content-Type: text/plain; ";

                fputs($fp, $content);
                fputs($fp, "charset=\"EUC-KR\"\r\n\n\n");
                
                fputs($fp, $comment);
                
                fputs($fp, "\r\n");
                
                fputs($fp, "\r\n.\r\n");
                
                $retval[2] = fgets($fp, 128);
                
                fclose($fp);
                
                if ( !ereg("^250", $retval[0]) || !ereg("^250", $retval[1]) || !ereg("^250", $retval[2]) ) return 0;
                else return 1;
        }


6. 메일링 테스트 실시합니다.

메일링 테스트를 할때는 hanmail을 제외한 다른 메일을 선택하여 실시하는 것이 좋습니다.

부디 성공하시길 바랍니다.

출처 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=메일&select_arrange=headnum&desc=asc&no=6762

ps : php는 수정 안해도 잘 되던데 난.. ^^
?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views931228
    read more
  2. WIndows Application의 실행 속도 측정

    Date2023.09.06 Category응용 프로그래밍 ByJaeSoo Views3235
    Read More
  3. 메모리 부족 현상 (allowed memory size of 134217728 bytes..)

    Date2023.08.01 Category웹 프로그래밍 ByJaeSoo Views2252
    Read More
  4. Guzzle - cURL error 60: SSL certificate problem: unable to get local issuer certificate 문제 해결

    Date2023.07.30 Category웹 프로그래밍 ByJaeSoo Views2289
    Read More
  5. XE 캐시파일 재성생후 404 Oops, Sorry. Page is not found! 나올때

    Date2023.07.29 Category웹 프로그래밍 ByJaeSoo Views2159
    Read More
  6. [Apple] 엔터프라이즈 계정신청 (Enterprise Program)

    Date2023.03.27 Category응용 프로그래밍 ByJaeSoo Views316
    Read More
  7. XE - " Fatal error: Class 'Object' not found in " / class 낫파운드 오류

    Date2023.03.20 Category웹 프로그래밍 ByJaeSoo Views190
    Read More
  8. [MSA] MSA란 무엇인가? 개념 이해하기

    Date2023.01.26 Category응용 프로그래밍 ByJaeSoo Views252
    Read More
  9. iOS 앱 개발을 위한 인증서 생성 및 관리

    Date2023.01.18 Category웹 프로그래밍 ByJaeSoo Views251
    Read More
  10. [ iOS ] 앱 스토어 개인, 회사, 엔터프라이즈 차이점

    Date2023.01.09 Category프로그래밍 ByJaeSoo Views267
    Read More
  11. PHP 파서 이해하기 (<?php의 php를 생략하고 간단히 <? 태그 와 ?> 태그를 사용하는 방법)

    Date2016.08.10 Category웹 프로그래밍 ByJaeSoo Views392
    Read More
  12. SVN의 cleanup 에러시 해결방법

    Date2016.05.05 Category프로그래밍 ByJaeSoo Views777
    Read More
  13. [오류해결] svn cleanup failed-previous operation has not finished; run cleanup if it was interrupted

    Date2016.05.05 Category프로그래밍 ByJaeSoo Views655
    Read More
  14. TortoiseSVN 계정변경

    Date2016.05.05 Category프로그래밍 ByJaeSoo Views621
    Read More
  15. SVN passwd 설정 : 계정 (users/passwd)

    Date2016.05.04 Category프로그래밍 ByJaeSoo Views587
    Read More
  16. XE 비회원 글쓰기 항목 지우기

    Date2016.04.28 Category웹 프로그래밍 ByJaeSoo Views557
    Read More
  17. 메모리 영역 (code, data, stack, heap)

    Date2016.03.23 Category응용 프로그래밍 ByJaeSoo Views820
    Read More
  18. [SVN] Subversion 명령들

    Date2016.02.06 Category응용 프로그래밍 ByJaeSoo Views1023
    Read More
  19. IBM JDK 1.6 에서 Spring 2.5.2를 사용할 때 GenericTypeResolver 에서 NullPointerException이 발생하는 문제

    Date2016.01.27 Category응용 프로그래밍 ByJaeSoo Views852
    Read More
  20. 오른쪽 마우스 금지 소스 / 드래그 금지 소스

    Date2016.01.20 Category웹 프로그래밍 ByJaeSoo Views507
    Read More
  21. [전자정부 표준프레임워크] 톰캣(Tomcat) 설치하기

    Date2016.01.02 Category응용 프로그래밍 ByJaeSoo Views569
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너