테스트 사이트 - 개발 중인 베타 버전입니다

간단한 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개

채택된 답변
+20 포인트
중간 중간에 echo 나 print로 찾으셔야 할듯
로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

한랭건조
10년 전
중간 중간 찍어봐도 제쪽에서는 한번만 실행하거든요.
근데 보내고 나면 2번 보내 지네요. -_-;;
한랭건조
10년 전
묘하게 오작동이 하나씩 늘어가서 그냥 사용하기로 결정했습니다.
한랭건조
10년 전
헤더 파라메터를 빼버리니까 정상 작동 하네요.
불량학생
10년 전
파라메터라 음...

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인