묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
폼메일에 관한 질문입니다. (제발 봐주세요...ㅜ_ㅡ)
2004.01.13 05:01
일단 메일이 보내지는 것까지는 성공했습니다.
php를 제대로 모르는 관계로 많이 어렵네요. 정말 공부의 필요성을 절실히 느낍니다.
소스를 두번이나 바꾸어 써서 결국은 성공했는데... 똑같은 문제에 고민하게 되었네요.
파일은 mail.php 와 formmail_deliver.php3 두개를 저장해 업로드했구요.
mail.php은 폼 문서양식입니다. 들어가는 내용이 여러가진데요.
그 내용들이 메일에 다 보내지지 않아서.. 질문 드리는 겁니다. ㅠ_ㅜ
폼 문서양식은 문제가 되지 않았으니... php3 파일만 붙여넣기 해봤습니다.
--------------formmail_deliver.php3--------------------------------------------------------
<?
// 창에 이름및 주소를 안적으면 나오는 에러 메세지를 나오게 하는 함수입니다..
function error($text){
echo "
<script language=javascript>
window.alert('$text')
history.go(-1)
</script>";
exit;
}
// 메일 보내기가 성공하거나 실패의 여부를 나오게 하는 함수
function msg($text){
echo "
<script language=javascript>
window.alert('$text')
</script>
<meta http-equiv='refresh' content='0;url=mail.php'>";
exit;
}
if (!$subject) {error('다시 입력해주십시오');}
if (!$name) {error('다시 입력해주십시오');} // 이름이 없을때 에러 메세지
if (!$number) {error('+ '+ '다시 입력해주십시오');} // 제목을 안적으면 나오는 에러 메세지.
if (!$phone) {error('다시 입력해주십시오');} // 내용을 안적으면 나오는 에러 메세지
if (!$hp) {error('다시 입력해주십시오');}
if (!$address) {error('다시 입력해주십시오');}
if (!$esti) {error('다시 입력해주십시오');}
if (!$posi) {error('다시 입력해주십시오');}
if (!$width) {error('다시 입력해주십시오');}
if (!$money) {error('다시 입력해주십시오');}
if (!$body) {error('다시 입력해주십시오');}
if (!$frommail) {error('메일을 적어주세요');}
if (!$tomail) {error('메일을 적어주세요');}
$mailheaders .= "Return-Path: $frommail rn"; // 메일 헤더
$mailheaders .= "From: $name $frommail rn"; // 메일헤더, 이름과 email 주소가 나오게 함..
$result=mail($tomail , $subject , $body , $mailheaders); // 메일 함수
if($result){msg('전송성공');} // 성공하면 나오는 메제시
else{error('전송실패');} // 편지가 전달되지 않으면 나오는 함수
?>
----------------------------formmail_deliver.php3 ------------------------------------------
여기까지구요.
이렇게 해서 메일을 보내면 제목이나 보내는 사람 정보는 제대로 나오는데,
메일 내용은 $body 이부분만 나옵니다.
나머지 부분들도 모두 다 나오게 하려면 어떻게 해야하는지..
정말 이 부분만 해결하면 다 끝나는데 정말 눈물납니다. ㅠ_ㅜ
제발 도와주세요.. 부탁드립니다. ㅠ_ㅜ
php를 제대로 모르는 관계로 많이 어렵네요. 정말 공부의 필요성을 절실히 느낍니다.
소스를 두번이나 바꾸어 써서 결국은 성공했는데... 똑같은 문제에 고민하게 되었네요.
파일은 mail.php 와 formmail_deliver.php3 두개를 저장해 업로드했구요.
mail.php은 폼 문서양식입니다. 들어가는 내용이 여러가진데요.
그 내용들이 메일에 다 보내지지 않아서.. 질문 드리는 겁니다. ㅠ_ㅜ
폼 문서양식은 문제가 되지 않았으니... php3 파일만 붙여넣기 해봤습니다.
--------------formmail_deliver.php3--------------------------------------------------------
<?
// 창에 이름및 주소를 안적으면 나오는 에러 메세지를 나오게 하는 함수입니다..
function error($text){
echo "
<script language=javascript>
window.alert('$text')
history.go(-1)
</script>";
exit;
}
// 메일 보내기가 성공하거나 실패의 여부를 나오게 하는 함수
function msg($text){
echo "
<script language=javascript>
window.alert('$text')
</script>
<meta http-equiv='refresh' content='0;url=mail.php'>";
exit;
}
if (!$subject) {error('다시 입력해주십시오');}
if (!$name) {error('다시 입력해주십시오');} // 이름이 없을때 에러 메세지
if (!$number) {error('+ '+ '다시 입력해주십시오');} // 제목을 안적으면 나오는 에러 메세지.
if (!$phone) {error('다시 입력해주십시오');} // 내용을 안적으면 나오는 에러 메세지
if (!$hp) {error('다시 입력해주십시오');}
if (!$address) {error('다시 입력해주십시오');}
if (!$esti) {error('다시 입력해주십시오');}
if (!$posi) {error('다시 입력해주십시오');}
if (!$width) {error('다시 입력해주십시오');}
if (!$money) {error('다시 입력해주십시오');}
if (!$body) {error('다시 입력해주십시오');}
if (!$frommail) {error('메일을 적어주세요');}
if (!$tomail) {error('메일을 적어주세요');}
$mailheaders .= "Return-Path: $frommail rn"; // 메일 헤더
$mailheaders .= "From: $name $frommail rn"; // 메일헤더, 이름과 email 주소가 나오게 함..
$result=mail($tomail , $subject , $body , $mailheaders); // 메일 함수
if($result){msg('전송성공');} // 성공하면 나오는 메제시
else{error('전송실패');} // 편지가 전달되지 않으면 나오는 함수
?>
----------------------------formmail_deliver.php3 ------------------------------------------
여기까지구요.
이렇게 해서 메일을 보내면 제목이나 보내는 사람 정보는 제대로 나오는데,
메일 내용은 $body 이부분만 나옵니다.
나머지 부분들도 모두 다 나오게 하려면 어떻게 해야하는지..
정말 이 부분만 해결하면 다 끝나는데 정말 눈물납니다. ㅠ_ㅜ
제발 도와주세요.. 부탁드립니다. ㅠ_ㅜ
댓글 4
-
감자
2004.01.14 17:08
-
감자
2004.01.14 17:12
근데 막상 메일을 받아보면 그내용은 아래와 같을 겁니다.
"서울시서대문구서대문동30안녕하세요.반갑습니다."
3개를 전부 이어서 썻으니까 그렇겠죠?
그럼 $body = $add.$age.$contents; 를
$body = $add."<br>".$age."<br>".$contents; 와 같이 수정하면 됩니다.
그럼
"서울시서대문구서대문동
30
안녕하세요.반갑습니다."
요렇게 나오겠죠. 그러나 지금 위에 만드신 소스 처럼 넣으시면 html이 안먹힌 상태로 보여집니다.
즉 메일을 받아보면 내용엔
"서울시서대문구서대문동."<br>".30."<br>".안녕하세요.반갑습니다."
과 같이 출력이 됩니다.
그럼 어떻게 하냐구요? -
감자
2004.01.14 17:15
아래와 같이 만들어 놓으신 메일 헤더정보에
$mailheaders .= "Return-Path: $frommail \r\n";
$mailheaders .= "From: $name $frommail \r\n";
이 부분을 추가 합니다.
$mailheaders .= "From:FROM\nContent-Type:text/html";
그래야 보내진 메일에 html이 먹힌 형식으로 출력이 되는거죠!
궁금증이 해결이 안되시면, wed@foxylove.net으로 연락주시면 답변드리겟습니다. -
으아
2004.01.14 22:53
감자님 답변 감사합니다. ㅠ_ㅜ
해결은 잘 되었어요. 정말 감사드립니다. ㅠ_ㅜ
보내 잖습니까?
예를 들어서 설명을 하자면,
<form action="formmail_deliver.php3 " method="post">
<input type="text" name="add"> # 주소
<input type="text" name="age"> # 나이
<input type="text" name="contents"> # 내용
<input type="submit" value="보내기"> # 보내기 버튼
</form>
위와 같은 양식으로 이름과 나이 내용 을 보낸다고 치면.
변수 $body 에 mail.php 에서 넘어온 값들을 넣어야 겠죠. 다 보일라면...
그럼
$body = $add.$age.$contents;
요런 방식으로 변수 $body에 넣어주시면 다 출력이 되겁니다.