메일 전송 관련 질문 정보
메일 전송 관련 질문본문
안녕하세요~!
얼마전부터 PHP를 공부하고 있는데, 이메일 전송 관련해서 문제가 발생해서 고수님들의 조언을 듣고자 글을 올립니다.
<참고> 아래 소스는 그누보드 게시판(스킨 자료실)에서 참고하여 작성한 것입니다.
// 문의 메일 발송 부분
$fnick="아무개";
$fmail="*** 개인정보보호를 위한 이메일주소 노출방지 ***";
$to=$wr_email;
$subject="문의 메일입니다!";
$content="테스트 메일입니다.";
$type="";
$file="";
for ($i=1; $i<=$attach; $i++)
{
if ($_FILES["file".$i][name])
$file[] = attach_file($_FILES["file".$i][name], $_FILES["file".$i][tmp_name]);
}
$result_email = mailer($fnick, $fmail, $to, $subject, $content, $type, $file);
if($result_email) {
echo ("<script language='javascript'>
alert('★ 정상적으로 발송되었습니다!★');
</script>");
}
else {
echo ("<script language='javascript'>
alert('★ 정상적으로 전송되지 않았으니 다시 작성해주세요!★');
history.go(-1);
</script>");
}
<문제점>
메일은 잘 가는데 $result_email 값이 0이 되어 전송이 안되었다는 메시지가 계속해서 뜹니다.
제가 초보여서 모르는 게 많습니다.
고수님들께서 조언을 해 주시면 무한한 영광으로 알겠습니다.
부탁합니다.
감사합니다~!^^*
참고로 mailer 함수 내용 첨부합니다.
function mailer($fname, $fmail, $to, $subject, $content, $type, $file="", $cc="", $bcc="")
{ // type=0 을 강제로 넣어도 안됨
global $config;
global $g4;
// 메일발송 사용을 하지 않는다면
if (!$config[cf_email_use]) return;
$fname = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";
$subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";
//$g4[charset] = ($g4[charset] != "") ? "charset=$g4[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.91 (sir.co.kr) : $_SERVER[SERVER_ADDR] : $_SERVER[REMOTE_ADDR] : $g4[url] : $_SERVER[PHP_SELF] : $_SERVER[HTTP_REFERER] \n";
// UTF-8 관련 수정
$header .= "X-Mailer: SIR Mailer 0.92 (sir.co.kr) : $_SERVER[SERVER_ADDR] : $_SERVER[REMOTE_ADDR] : $g4[url] : $_SERVER[PHP_SELF] : $_SERVER[HTTP_REFERER] \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=$g4[charset]\n";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; charset=$g4[charset]\n";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64\n\n";
$header .= chunk_split(base64_encode($content)) . "\n";
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, "", $header);
//@mail($to, $subject, "", $header,$fmail);(이것도 안됨)
}
// 파일 첨부시
/*
$fp = fopen(__FILE__, "r");
$file[] = array(
"name"=>basename(__FILE__),
"data"=>fread($fp, filesize(__FILE__)));
fclose($fp);
*/
// 파일을 첨부함
function attach_file($filename, $file)
{
$fp = fopen($file, "r");
$tmpfile = array(
"name" => $filename,
"data" => fread($fp, filesize($file)));
fclose($fp);
return $tmpfile;
}
얼마전부터 PHP를 공부하고 있는데, 이메일 전송 관련해서 문제가 발생해서 고수님들의 조언을 듣고자 글을 올립니다.
<참고> 아래 소스는 그누보드 게시판(스킨 자료실)에서 참고하여 작성한 것입니다.
// 문의 메일 발송 부분
$fnick="아무개";
$fmail="*** 개인정보보호를 위한 이메일주소 노출방지 ***";
$to=$wr_email;
$subject="문의 메일입니다!";
$content="테스트 메일입니다.";
$type="";
$file="";
for ($i=1; $i<=$attach; $i++)
{
if ($_FILES["file".$i][name])
$file[] = attach_file($_FILES["file".$i][name], $_FILES["file".$i][tmp_name]);
}
$result_email = mailer($fnick, $fmail, $to, $subject, $content, $type, $file);
if($result_email) {
echo ("<script language='javascript'>
alert('★ 정상적으로 발송되었습니다!★');
</script>");
}
else {
echo ("<script language='javascript'>
alert('★ 정상적으로 전송되지 않았으니 다시 작성해주세요!★');
history.go(-1);
</script>");
}
<문제점>
메일은 잘 가는데 $result_email 값이 0이 되어 전송이 안되었다는 메시지가 계속해서 뜹니다.
제가 초보여서 모르는 게 많습니다.
고수님들께서 조언을 해 주시면 무한한 영광으로 알겠습니다.
부탁합니다.
감사합니다~!^^*
참고로 mailer 함수 내용 첨부합니다.
function mailer($fname, $fmail, $to, $subject, $content, $type, $file="", $cc="", $bcc="")
{ // type=0 을 강제로 넣어도 안됨
global $config;
global $g4;
// 메일발송 사용을 하지 않는다면
if (!$config[cf_email_use]) return;
$fname = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";
$subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";
//$g4[charset] = ($g4[charset] != "") ? "charset=$g4[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.91 (sir.co.kr) : $_SERVER[SERVER_ADDR] : $_SERVER[REMOTE_ADDR] : $g4[url] : $_SERVER[PHP_SELF] : $_SERVER[HTTP_REFERER] \n";
// UTF-8 관련 수정
$header .= "X-Mailer: SIR Mailer 0.92 (sir.co.kr) : $_SERVER[SERVER_ADDR] : $_SERVER[REMOTE_ADDR] : $g4[url] : $_SERVER[PHP_SELF] : $_SERVER[HTTP_REFERER] \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=$g4[charset]\n";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; charset=$g4[charset]\n";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64\n\n";
$header .= chunk_split(base64_encode($content)) . "\n";
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, "", $header);
//@mail($to, $subject, "", $header,$fmail);(이것도 안됨)
}
// 파일 첨부시
/*
$fp = fopen(__FILE__, "r");
$file[] = array(
"name"=>basename(__FILE__),
"data"=>fread($fp, filesize(__FILE__)));
fclose($fp);
*/
// 파일을 첨부함
function attach_file($filename, $file)
{
$fp = fopen($file, "r");
$tmpfile = array(
"name" => $filename,
"data" => fread($fp, filesize($file)));
fclose($fp);
return $tmpfile;
}
댓글 전체