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

폼메일 첨부파일 발송질문 채택완료

tlsdlq 1년 전 조회 1,921

 

안녕하세요!

 

폼메일 발송을 동일하게 아래 코드처럼 사용하고있습니다.

 

 

include "mailer.php";

 

$mode = $_REQUEST['mode'];

$company_name = $_REQUEST['company_name'];

$name = $_REQUEST['name'];

$wr_1 = $_REQUEST['wr_1'];

$wr_2 = $_REQUEST['wr_2'];

$tel = $_REQUEST['tel'];

$email = $_REQUEST['email'];

$hp = $_REQUEST['hp'];

$code = $_REQUEST['code'];

$client = $_REQUEST['client'];

$title = $_REQUEST['subject'];

$content = $_REQUEST['content'];

$ip = $_SERVER['REMOTE_ADDR'];

 

$subject = "[폼메일] 입니다.";

$body = "";

$body .= "회사명 : $company_name ";

$body .= "연락처 : $tel ";

$body .= "성함 : $name ";

$body .= "이메일 : $email ";

$body .= "문의제목 : $title ";

$body .= "문의내용 : ";

$body . "

$content
";

$admin_email = "";

 

if ($mode == "send") {

  //파일첨부 시작

  for ($i = 1; $i <= 2; $i++) {

    $file[$i] = $_FILES['userfile' . $i]['name'];

    $target[$i] = "/tmp/" . $file;

 

    if (move_uploaded_file($_FILES['userfile' . $i]['tmp_name'], $target[$i])) {

      chmod("$target[$i]", 0777);

    }

 

    $attach[$i] = attach_file($file[$i], $target[$i]);

    //업로드 파일을 삭제한다.

    @unlink($target[$i]);

  }

  //파일첨부 끝

 

  mailer($name, $email, $admin_email, $subject, $body, $type = 1, $attach);

  echo "";

  echo ("");

  echo ("");

}

 

?>

 

 

                       

문의사항

                       

                           

                           

                               

                               

                           

                           

                               

                               

                           

                           

                               

                               

                           

                           

                       

제목

                               

                               

문의내용*

                               

                               

첨부파일

                               

                                   

                                   

                                    readonly style="color:#000">

                                   

                                   

                               

                               

                       

 

 

 

 

 

그리고 mailer.php 내용은 아래와 같습니다.

// type : text=0, html=1, text+html=2

function mailer($from_name, $from_email, $to_email, $subject, $content, $type=1, $file="") {

    $conf['charset'] = "utf-8";

 

    $from_name   = "=?$conf[charset]?B?" . base64_encode($from_name) . "?=";

    $subject = "=?$conf[charset]?B?" . base64_encode($subject) . "?=";

 

    $header  = "Return-Path: <$from_email>\n";

    $header .= "From: $from_name <$from_email>\n";

    $header .= "Reply-To: <$from_email>\n";

    $header .= "MIME-Version: 1.0\n";

 

    if ($file != "") {

        $boundary = uniqid("http://localhost");

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

        $header .= "--$boundary\n";

    }

 

    if ($type) {

        $header .= "Content-Type: TEXT/HTML; charset=$conf[charset]\n";

        if ($type == 2) $content = nl2br($content);

    } else {

        $header .= "Content-Type: TEXT/PLAIN; charset=$conf[charset]\n";

        $content = stripslashes($content);

    }

    $header .= "Content-Transfer-Encoding: BASE64\n\n";

    $header .= chunk_split(base64_encode($content)) . "\n";

 

    for($i=1;$i<=3;$i++) {

        if($file[$i]['name'] == '') continue;

        $file_name = $file[$i]['name'];

        $header .= "\n--$boundary\n";

        $header .= "Content-Type: application/octet-stream\n";

        $header .= "Content-Transfer-Encoding: BASE64\n";

        $header .= "Content-Disposition: attachment; filename=\"$file_name\"\n";

 

        $header .= "\n";

        $header .= base64_encode($file[$i]['data']);

        $header .= "\n";

    }

 

    $header .= "--$boundary--\n\n";

    //1번.

    //@mail($to_email, $subject, "", $header);

 

    //서버 환경에 따라서 아래처럼 옵션값을 넣어줘야 발송이 되는 호스팅이 있습니다.

    //1번으로 발송이 안 될 경우 2번처럼 해보세요.(1번 주석처리, 2번 주석 제거)

 

    //2번.

    @mail($to_email, $subject, "", $header,'-f'.$from_email);

}

 

// 파일을 첨부함

function attach_file($file_name, $file) {

    $fp = @fopen($file, "r");

    $tmpfile = array(

        "name" => $file_name,

        "data" => @fread($fp, @filesize($file)));

    @fclose($fp);

    return $tmpfile;

}

 

?>

 

 

기존에 계속 cafe24.com으로 위내용으로 작업을 했을때는 첨부파일이 메일로 잘 들어왔었는데요 

 

최근에 mycafe24.com으로 도메인을 변경한 뒤로부터는 다른내용은 메일 발송이 잘되는데 

 

첨부파일이 들어오지않습니다...

 

정말 어떠한 방법을해도 들어오질않네요ㅠㅠ

 

확인해주시고 답변 부탁드립니다!! 꼭이요!!!  감사합니다!!!

 

 

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

답변 1개

전자와 후자의 서버 환경이 다른것 같은데

카페24 에 직접 문의해보시는게 빠를듯 합니다. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

t
tlsdlq
1년 전
답변감사합니다~!

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

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

로그인