묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[PHP] 메일 발송관련 - mailer
2004.06.06 09:27
아래 메일발송 코드가 있습니다.
윈도우 서버에서 돌리는 프로그램이 아래 메일발송 코드를 사용하거든요.
리눅스 서버에다 설치하고 메일 방송하면 메일 내용까지 확인이 가능한데,
윈도우 서버에다 프로그램을 설치후 아래 코드로 메일을 보내면 메일 내용이 표시 되질 않더라구요.(제목,보낸이,메일주소등은 표시가 됩니다. 내용만 안뜹니다.)
이 문제를 어떻게 해결해야하나요? (어떤 분들은 인코딩때문이라고도 하시고.... r을 입력해보라시는 분들도 있는데... 모르겠습니다.)
고수님들 도와주세요
// 메일 보내기
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $charset="EUC-KR", $cc="", $bcc="") {
// type : text=0, html=1, text+html=2
$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: $ccn";
if ($bcc) $header .= "Bcc: $bccn";
$header .= "MIME-Version: 1.0n";
$header .= "X-Mailer: n";
if ($file != "") {
$boundary = uniqid("http://내 홈 주소/");
$header .= "Content-type: MULTIPART/MIXED; BOUNDARY="$boundary"nn";
$header .= "--$boundaryn";
}
if ($type) {
$header .= "Content-Type: TEXT/HTML; $charsetn";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; $charsetn";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64nn";
$header .= chunk_split(base64_encode($content)) . "n";
if ($file != "") {
foreach ($file as $f) {
$header .= "n--$boundaryn";
$header .= "Content-Type: APPLICATION/OCTET-STREAM; name="$f[name]"n";
$header .= "Content-Transfer-Encoding: BASE64n";
$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, "", $header);
}
윈도우 서버에서 돌리는 프로그램이 아래 메일발송 코드를 사용하거든요.
리눅스 서버에다 설치하고 메일 방송하면 메일 내용까지 확인이 가능한데,
윈도우 서버에다 프로그램을 설치후 아래 코드로 메일을 보내면 메일 내용이 표시 되질 않더라구요.(제목,보낸이,메일주소등은 표시가 됩니다. 내용만 안뜹니다.)
이 문제를 어떻게 해결해야하나요? (어떤 분들은 인코딩때문이라고도 하시고.... r을 입력해보라시는 분들도 있는데... 모르겠습니다.)
고수님들 도와주세요
// 메일 보내기
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $charset="EUC-KR", $cc="", $bcc="") {
// type : text=0, html=1, text+html=2
$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: $ccn";
if ($bcc) $header .= "Bcc: $bccn";
$header .= "MIME-Version: 1.0n";
$header .= "X-Mailer: n";
if ($file != "") {
$boundary = uniqid("http://내 홈 주소/");
$header .= "Content-type: MULTIPART/MIXED; BOUNDARY="$boundary"nn";
$header .= "--$boundaryn";
}
if ($type) {
$header .= "Content-Type: TEXT/HTML; $charsetn";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; $charsetn";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64nn";
$header .= chunk_split(base64_encode($content)) . "n";
if ($file != "") {
foreach ($file as $f) {
$header .= "n--$boundaryn";
$header .= "Content-Type: APPLICATION/OCTET-STREAM; name="$f[name]"n";
$header .= "Content-Transfer-Encoding: BASE64n";
$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, "", $header);
}