간단한 php 클래스를 하나 만들었는데 메일이2번씩 보내 집니다. 채택완료
한랭건조
10년 전
조회 2,980
</p><p><?php</p><p>class SendMail {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $to;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $from;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $subject;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $message;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $message_container = '';</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>private $headers;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>public $result;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>public function __construct(){</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>public function send($to, $from = '',$subject = '', $message = ''){</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->to = $to;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->from = $from;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->subject = $subject;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->message = $message;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>//메일 주소의 유효성 검사 및 보낼 주소가 여러개일경우 빈 공백 없애기.</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if(mb_strpos($this->to, ",")){</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$arr = explode(',', $this->to);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$str = '';</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>foreach ($arr as $key => $value) {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$arr[$key] = trim($value);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if(!$this->chekMailForm($value)) return FALSE;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->to = implode($arr, ',');</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>unset($arr);unset($str);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}else{//보낼 주소가 하나일 경우.</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if(!$this->chekMailForm($this->to)) return FALSE;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if(!$this->chekMailForm($this->from)) return FALSE;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>//헤더 작업</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->headers = 'MIME-Version:1.0'."\r\n";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->headers .= 'Content-type: text/html; charset=euc-kr'."\r\n";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>// echo "|||";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>// echo $this->headers;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>// echo "|||";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->headers .= "To:이재규원장님 <".$this->to.">\r\n"; <span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->headers .= "From:해피본직원 <".$this->from.">\r\n"; <span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>//문자 깨짐 때문에 EUC-KR로 인코딩</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->message_container = iconv('UTF-8', 'EUC-KR', $this->message_container);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->subject = iconv('UTF-8', 'EUC-KR', $this->subject);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$this->headers = iconv('UTF-8', 'EUC-KR', $this->headers);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>//메일 보내기</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> mail($this->to, $this->subject, $this->message_container, $this->headers);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>/*==메일 유효성 검사</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> * param</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> * - $email (str): 메일 주소.</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> * return: boolean</p><p><span class="Apple-tab-span" style="white-space:pre"> </span> * ==*/</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>public function chekMailForm($email){</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$_email = filter_var($email, FILTER_SANITIZE_EMAIL);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if(filter_var($_email, FILTER_VALIDATE_EMAIL)) return TRUE;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>else return FALSE;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p>}</p><p> </p><p> </p><p>$mail = new SendMail();</p><p>$result = $mail->send('rucoco@hanmail.net', 'rucoco@hanmail.net', '테스트문자', '안녕하세요');</p><p>?></p><p> </p><p>
위 소스인데 희한하게 2번씩 날려 지네요. -_-;;
왜 2번씩 날아가는 건지 원인을 못찾고 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인
근데 보내고 나면 2번 보내 지네요. -_-;;