메일보내기 첨부파일, 여러내용
본문
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'];
u_file'
$attach_name = $_FILES[']['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;
첨부파일은 아래 링크 참조하세요.
1. m_txt 입력란에 보내실 내용을 모두 작성하는 방법이 있구요.
2. 전송하는 파일에서 $message 변수에 원하시는 값을 추가해줘야 합니다.
예) $message = "신청인명 : $u_name<br>".$message;
첨부파일은 아래 링크 참조하세요.
답변을 작성하시기 전에 로그인 해주세요.