NEW Nmail PHP 3 업그레이드 할인
자세히 보기

그누보드3 에서 mail함수로 발송 실패

기*회 2007.01.12 16:53 조회 11950

※ 필수입력정보 ※

▷ 제품버젼 : Nmail PHP
▷ 사용중인 주소(URL) : http://
▷ 문제발생시 메뉴/주소 :
▷ 문제발생시 에러메세지
:

▷ 질문내용
:

그누보드3에서는 lib/mailer.lib.php 의 mailer라는 함수를 쓰는데요.
nmail로 바꾼 후부터 이함수를 사용하는 운영자 메일이 가질 않더군요.
mailer는 mail이라는 php함수를 쓰는데, 테스트를 해보니 실패 메시지가 넘어오지 않는다는게 더 큰 문제더군요.

그래서 제가 직접 mailer함수를 수정해가며 테스트 해본 결과, 발송이 되긴 되는데, 끝내 hotmail로는 전송이 안되더군요. 아마도 외국 메일이라 charset같은게 문제가 되지 않나 싶습니다. hanmail과 nate.com으로는 발송 테스트 성공 했구요.
아래 소스 보시면 주석에 숫자로 1. 2. 3. 세부분이 고친 부분입니다. hotmail로 메일이 안가는 이유를 유추해 보시면 좋겠고, 프로그램 기능 향상에 참조가 되면 좋겠습니다.

// XMail에 따른 변경 2007.01.12
// 메일 보내기 (파일 여러개 첨부 가능)
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $charset="EUC-KR", $cc="", $bcc="") {
// type : text=0, html=1, text+html=2

// 1. $fname, $subject 등의 변경 기능 취소
/* $fname = "=?$charset?B?" . base64_encode($fname) . "?=";
$subject = "=?$charset?B?" . base64_encode($subject) . "?=";
$charset = ($charset != "") ? "charset=$charset" : "";
*/
$header = "Return-Path: <$fmail>\n";
$header .= "From: $fname <$fmail>\n";
$header .= "Reply-To: <$fmail>\n";
if ($cc) $header .= "Cc: $cc\n";
if ($bcc) $header .= "Bcc: $bcc\n";
$header .= "MIME-Version: 1.0\n";
$header .= "X-Mailer: sir mailer 0.9 (sir.co.kr)\n";

if ($file != "") {
$boundary = uniqid("http://sir.co.kr/");

$header .= "Content-type: MULTIPART/MIXED; BOUNDARY=\"$boundary\"\n\n";
$header .= "--$boundary\n";
}

if ($type) {
$header .= "Content-Type: TEXT/HTML; $charset\n";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; $charset\n";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64\n\n";
//$header .= chunk_split(base64_encode($content)) . "\n"; // 2. 이 부분은 mail함수에 직접 넘김

if ($file != "") {
foreach ($file as $f) {
$header .= "\n--$boundary\n";
$header .= "Content-Type: APPLICATION/OCTET-STREAM; name=\"$f[name]\"\n";
$header .= "Content-Transfer-Encoding: BASE64\n";
$header .= "Content-Disposition: inline; filename=\"$f[name]\"\n";

$header .= "\n";
$header .= chunk_split(base64_encode($f[data]));
$header .= "\n";
}
$header .= "--$boundary--\n";
}
@mail($to, $subject, chunk_split(base64_encode($content)), $header, '-f'."****@****"); // 3. -f 옵션 추가 //@mail($to, $subject, "", $header);
}

댓글 1
이전 글 받은메일에서 그림이 표시 되지 않음 1 양*안 2007.01.16
다음 글 DMLAB 님 RWAPM 최신버젼 테스트 결과입니다. 4 PASSKOREA 2007.01.12