PHP 에서 mail 함수 정상 동작하는지 확인하는 소스
<?php
//$mailto="받는주소";
$mailto="sample@a.com";
$subject="mail test";
$content="test";
$result=mail($mailto, $subject, $content);
if($result){
echo "mail success";
}else {
echo "mail fail";
}
?>
//$mailto="받는주소";
$mailto="sample@a.com";
$subject="mail test";
$content="test";
$result=mail($mailto, $subject, $content);
if($result){
echo "mail success";
}else {
echo "mail fail";
}
?>
test.php 로 저장하여,
웹페이지에서 로드했을때
mail success 가 찍혀야 정상
만약, 위 소소에서 mail success 가 찍히는데
각종 커스텀 보드에서 메일 발송이 되지 않는다면,
php소스에서 mail 함수의 각 인자들을 확인해본다.
error_log($mailto, 0); // mailto 변수를 서버의 에러로그에 찍는다.
error_log($subject, 0);
가령,
<?php
//$mailto="받는주소";
$mailto="sample@a.com";
$subject="mail test";
$content="test";
$result=mail($mailto, $subject, $content);
if($result){
echo "mail success";
}else {
error_log($mailto, 0);
echo "mail fail";
}
?>
//$mailto="받는주소";
$mailto="sample@a.com";
$subject="mail test";
$content="test";
$result=mail($mailto, $subject, $content);
if($result){
echo "mail success";
}else {
error_log($mailto, 0);
echo "mail fail";
}
?>
일 경우,
Apache 서버를 구동중이라면,
Apache\logs\error.log
파일에 mailto 변수의 내용이 찍힌다.
지금 내가 사용중인 환경은
Apache2.2.8
+ SMTP(W2K3 R2) + PHP5.2.5
위와 같이 테스트에서 이상이 없었으나,
제로보드에서는 메일을 보내지 못하는 현상이 발생한다.
따라서,
제로보드의 메일발송 소스를 확인해보니,
받는 사람(Receiptor) 변수에
위의 예제에서는 "sample@a.com" 이지만,
제로보드는 "받는사람 이름 <sample@a.com>"을 설정한다.
Receiptor 변수를 임의로 "sample@a.com"으로 수정하고
정상 작동하는 것을 확인
해당 소스를 수정해주었다.
제로보드\classes\mail\Mail.class.php
function getReceiptor() {
//if($this->receiptor_name) return sprintf("%s <%s>", '=?utf-8?b?'.base64_encode($this->receiptor_name).'?=', $this->receiptor_email);
return $this->receiptor_email;
}
//if($this->receiptor_name) return sprintf("%s <%s>", '=?utf-8?b?'.base64_encode($this->receiptor_name).'?=', $this->receiptor_email);
return $this->receiptor_email;
}
수정이후 정상 발송 확인
출처: https://lifeful.tistory.com/19 [SEIZ THE DAY.]
'Works > PHP' 카테고리의 다른 글
대체 URL 코드 - %26, %2F, %3A, %3F, %3D (0) | 2024.02.22 |
---|---|
phpmyadmin 로그인 후 오류 및 경고메세지 제거 (0) | 2022.06.22 |
sendmail 로 폼메일 발송시 nobody@localhost.localhost.com 으로 발송될 경우 (0) | 2020.06.26 |
php session 유지시간 설정 작업관련 (0) | 2020.04.14 |
date.timezone 개별 설정 (0) | 2018.02.22 |