메일보내기 첨부파일, 여러내용

메일보내기 첨부파일, 여러내용

QA

메일보내기 첨부파일, 여러내용

답변 3

본문

submit 클릭 시 메일보내지는 형식으로 구축하려하는데

지금 메일전송까지는 되는데 첨부파일전송이 안되고

메일 내용에 name="m_txt" 이외에 name="u_name" 등 여러가지 내용을 보내고 싶습니다.

 

html

            
<form method="post" action="sub0601_update.php" enctype="multipart/form-data" onsubmit="return mail_proc(this);" name="gogo">
                <ul>
                <li style="display:none">
                    <div width="110" align="left"></div>
                    <div align="left"><input type="text" name="femail" style="width:658px;" value="*** 개인정보보호를 위한 이메일주소 노출방지 ***" /></div>
</li>
                <li style="display:none">
                    <div width="110" align="left"></div>
                    <div align="left"><input type="text" name="temail" style="width:658px;" value="*** 개인정보보호를 위한 이메일주소 노출방지 ***" /></div>
</li>
                    <li class="lb01 h30">
                        <label for="tit">현장명 (field name)</label>
                        <input type="text" id="tit" name="tit" required />
                    </li>
                    <li class="lb02 h30">
                        <label for="s_date">접수일자 (reception date)</label>
                        <input type="text" id="s_date" name="s_date" required class="datepicker" />
                    </li>
                    <li class="lb03 h30">
                        <label for="add">신청지 주소 (order address)</label>
                        <input type="text" id="add" name="add" required />
                    </li>
                    <li class="lb04 h30">
                        <label for="u_name">신청인 성명 (subscriber name)</label>
                        <input type="text" id="u_name" name="u_name" required />
                    </li>
                    <li class="lb05 h30">
                        <label for="u_tel">신청인 전화번호 (subscriber phone number)</label>
                        <input type="tel" id="u_tel" name="u_tel" required />
                    </li>
                    <li class="lb06 h30">
                        <label for="b_date">준공일 (completion date)</label>
                        <input type="text" id="b_date" name="b_date" class="datepicker" />
                    </li>
                    <li class="lb07">
                        <label for="m_txt">하자내용 (defect content)</label>
                        <textarea name="m_txt" id="m_txt" cols="30" rows="10" required style=" vertical-align:middle;  line-height: 20px; "></textarea>
                    </li>
                    <li class="lb08 h30">
                        <label for="u_pw">비밀번호 (password)</label>
                        <input type="text" id="u_pw" name="u_pw" required />
                    </li>
                    <li class="lb09 h30">
                        <p>첨부파일 (attached file)</p>
                        <input type="file" id="u_file" name="u_file" />
                    </li>
                </ul>
 
                <div class="submit">
                    <input type="submit" value="제출 (submission)" onclick="return mail_proc(this.form);" />
                </div>
            </form>

.php


$femail = $_POST['femail'];
$temail = $_POST['temail'];
$remail = $_POST['remail'];
$hemail = $_POST['hemail'];
$subject = $_POST['tit'];
$message = $_POST['m_txt'];
 
$boundary = "----" . uniqid("part"); // 구분자
 
// --- 헤더 --- //
$headers = "Return-Path: ".str_replace("\\", "", $femail)."\r\n";
$headers .= "From: ".str_replace("\\", "", $femail)."\r\n";
if($remail) {
    $headers .= "Cc: ".str_replace("\\", "", $remail)."\r\n";
}
if($hemail) {
    $headers .= "Bcc: ".str_replace("\\", "", $hemail)."\r\n";
}
 
if($attach_url && $attach_name) { // --- 첨부파일 --- //
    $filename=$attach_name;
    $fp = fopen($attach_url,"r");
    $file = fread($fp,$attach_size);
    fclose($fp);
    if ($attach_type == ""){
        $attach_type = "application/octet-stream";
    }
    // --- 헤더 --- //
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: Multipart/mixed; boundary=\"$boundary\"";
    // --- 본문 --- // 
    $mailbody = "This is a multi-part message in MIME format.\r\n\r\n";
    $mailbody .= "--$boundary\r\n";
    $mailbody .= "Content-Type: text/html; charset=utf-8\r\n";
    $mailbody .= "Content-Transfer-Encoding: base64\r\n\r\n";
    $mailbody .= chunk_split(base64_encode(str_replace("\\", "", $message))) . "\r\n";
    // --- 첨부 --- // 
    $mailbody .= "--$boundary\r\n"; 
    $mailbody .= "Content-Type: ".$attach_type."; name=\"".$filename."\"\r\n";
    $mailbody .= "Content-Transfer-Encoding: base64\r\n";
    $mailbody .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $mailbody .= base64_encode($file)."\r\n\r\n";
    $mailbody .= "--$boundary--";
}
else {
    // --- 헤더 --- // 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: Multipart/alternative; boundary = \"$boundary\"";
    // --- 본문 --- //
    $mailbody = "--$boundary\r\n"; 
    $mailbody .= "Content-Type: text/html; charset=utf-8\r\n";
    $mailbody .= "Content-Transfer-Encoding: base64\r\n\r\n";
    $mailbody .= chunk_split(base64_encode(str_replace("\\", "", $message))) . "\r\n";
    $mailbody .= "--$boundary--\r\n\r\n"; 
}
 
$ret = mail($temail, $subject, $mailbody, $headers);
 
if(!$tit || !$u_name|| !$u_tel){
    alert('잘못된 접근입니다.');
    exit;
}
 
$file = "";
 

이 질문에 댓글 쓰기 :

답변 3

php 상단에

$u_name$_POST['u_name']; 추가해주시고

$attach_url  = $_FILES['u_file']['tmp_name'];
$attach_name  = $_FILES['
u_file']['name'];

36번째줄에 어떤방식으로 u_name을 넣으실껀지 모르겠지만 만약 body 젤상단에 넣으실꺼면

 $mailbody .= chunk_split(base64_encode(str_replace("\\""", $u_name."\r\n".$message))) . "\r\n";

이런식으로 바꾸면되지않을까요

 

1. m_txt 입력란에 보내실 내용을 모두 작성하는 방법이 있구요.

2. 전송하는 파일에서  $message 변수에 원하시는 값을 추가해줘야 합니다.

예) $message = "신청인명 : $u_name<br>".$message;

 

첨부파일은 아래 링크 참조하세요.

https://sir.kr/qa/222427

 

1. m_txt 입력란에 보내실 내용을 모두 작성하는 방법이 있구요.

2. 전송하는 파일에서  $message 변수에 원하시는 값을 추가해줘야 합니다.

예) $message = "신청인명 : $u_name<br>".$message;

 

첨부파일은 아래 링크 참조하세요.

https://sir.kr/qa/222427

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 209
© SIRSOFT
현재 페이지 제일 처음으로