묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
폼메일관련 에러입니다. 왜 그런지 좀 알려주십시용
2003.09.15 11:15
에러문구 :
Warning: Failed to connect to mailserver, verify your "SMTP" setting in php.ini in c:apm_setuphtdocssendmail.php on line 28
편지가 발송되었습니다
폼메일을 보내었을때 계속 저런 에러메시지가 나옵니다.
php.ini 를 어떻게 수정을 해야되는지.. 또 그 php.ini 파일은 apm_setup에선 어디에 있는질 모르겠더군요.
아래는 폼메일 파일소스입니다.
mail.htm 과 sendmail.php 파일 2개입니다.
[mail.htm]
<html>
<head>
<title>폼메일 만들기</title>
<body>
<font color=blue>//요까지는 당근 아시겠죠?</font>
<form method="post" action="sendmail.php">
<font color=blue>//요 위에것이 폼 시작을 말합니다. method에는 무조건 post를 넣는다구 생각하면 쉽습니다. 그리고 action은 데이타를 넘길 파일을 가르키면 되구요</font>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
보내는 사람 이름 <input type="text" name="name" maxlength="10" size="10">
<font color=blue>//input문입니다. 이건 보통 한줄짜리 데이타를 처리할때 쓰죠.
요기서 name을 주의해서 보세요. name에 쓰인 글자가 php3로 넘어갈때 $name 이라는 변수로 넘어가게 됩니다.</font>
</td>
</tr>
<tr>
<td>
보내는 사람 E-Mail <input type="text" name="frommail" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
받는 사람 E-Mail <input type="text" name="tomail" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
편지 제목 <input type="text" name="subject" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
<textarea name="memo" rows="5" cols="30"></textarea>
</td>
</tr>
<tr>
<td>
<center><input type="submit" value="편지보내기"> <input type="reset" value="취 소"></center>
<font color=blue>//위에서 type=submit이면 데이타를 action에 입력한 cgi에 넘기게 되구, cancle이면 폼안에 있는 글을 모두 지우죠</font>
</td>
</tr>
</table>
</form>
<font color=blue>//폼의 끝을 표시합니다. 당근 있어야 겠죠?</font>
</body>
</html>
[sendmail.php]
<? <font color=blue>// <- PHP 스트립트 시작표시</font>
<font color=blue>// 이부분은 데이타가 입력되지 않으면 에러표시를 할 함수입니다.</font>
function message ($message) <font color=blue>//$message라는 변수를 받죠</font>
{
echo "
<script>
window.alert ("$message");
history.go(-1);
</script>
";
exit;
}
<font color=blue>// 아래 부분을 보면 mail.html파일에서 input 에서 name=??? 로 햇던 부분들이 그냥 변수로 바로 사용하는게 보이죠? 폼에서 넘어온 값들은 php3에서는 아무 여과없이 그냥 변수처럼 앞에 $ 표시만 해주고 쓰면 됩니다.</font>
if(!$name) message("이름을 입력하십쇼");
if(!$tomail) message("보내는 사람의 메일을 적으십소");
if(!$frommail) message("받는 사람의 메일을 적으십소");
if(!$subject) message("제목을 적으십소");
if(!$memo) message("내용을 적으십소");
<font color=blue>아랫부분은 mail()함수에서 쓰게될 중요한 넘들입니다. 걍 외우십쇼.
</font>
$mh .= "Return-Path: $frommailrn";
$mh .= "From: $name <$frommail>rn";
<font color=blue>아래 striptslashes() 함수는 각 줄의 끝에 붙어 있는 슬래쉬를 제거하는 넘입니다.</font>
$memo = stripslashes($memo);
<font color=blue>아래 mail() 함수가 메일을 보내주는 넘입니다. mail(받는 사람 주소, 제목, 내용, 보내는 사람에 대한 정보)식으로 하면 됩니다.</font>
mail($tomail , $subject , $memo , $mh);
echo " 편지가 발송되었습니다.";
exit;
?>
Warning: Failed to connect to mailserver, verify your "SMTP" setting in php.ini in c:apm_setuphtdocssendmail.php on line 28
편지가 발송되었습니다
폼메일을 보내었을때 계속 저런 에러메시지가 나옵니다.
php.ini 를 어떻게 수정을 해야되는지.. 또 그 php.ini 파일은 apm_setup에선 어디에 있는질 모르겠더군요.
아래는 폼메일 파일소스입니다.
mail.htm 과 sendmail.php 파일 2개입니다.
[mail.htm]
<html>
<head>
<title>폼메일 만들기</title>
<body>
<font color=blue>//요까지는 당근 아시겠죠?</font>
<form method="post" action="sendmail.php">
<font color=blue>//요 위에것이 폼 시작을 말합니다. method에는 무조건 post를 넣는다구 생각하면 쉽습니다. 그리고 action은 데이타를 넘길 파일을 가르키면 되구요</font>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
보내는 사람 이름 <input type="text" name="name" maxlength="10" size="10">
<font color=blue>//input문입니다. 이건 보통 한줄짜리 데이타를 처리할때 쓰죠.
요기서 name을 주의해서 보세요. name에 쓰인 글자가 php3로 넘어갈때 $name 이라는 변수로 넘어가게 됩니다.</font>
</td>
</tr>
<tr>
<td>
보내는 사람 E-Mail <input type="text" name="frommail" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
받는 사람 E-Mail <input type="text" name="tomail" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
편지 제목 <input type="text" name="subject" maxlength="35" size="15"><br>
</td>
</tr>
<tr>
<td>
<textarea name="memo" rows="5" cols="30"></textarea>
</td>
</tr>
<tr>
<td>
<center><input type="submit" value="편지보내기"> <input type="reset" value="취 소"></center>
<font color=blue>//위에서 type=submit이면 데이타를 action에 입력한 cgi에 넘기게 되구, cancle이면 폼안에 있는 글을 모두 지우죠</font>
</td>
</tr>
</table>
</form>
<font color=blue>//폼의 끝을 표시합니다. 당근 있어야 겠죠?</font>
</body>
</html>
[sendmail.php]
<? <font color=blue>// <- PHP 스트립트 시작표시</font>
<font color=blue>// 이부분은 데이타가 입력되지 않으면 에러표시를 할 함수입니다.</font>
function message ($message) <font color=blue>//$message라는 변수를 받죠</font>
{
echo "
<script>
window.alert ("$message");
history.go(-1);
</script>
";
exit;
}
<font color=blue>// 아래 부분을 보면 mail.html파일에서 input 에서 name=??? 로 햇던 부분들이 그냥 변수로 바로 사용하는게 보이죠? 폼에서 넘어온 값들은 php3에서는 아무 여과없이 그냥 변수처럼 앞에 $ 표시만 해주고 쓰면 됩니다.</font>
if(!$name) message("이름을 입력하십쇼");
if(!$tomail) message("보내는 사람의 메일을 적으십소");
if(!$frommail) message("받는 사람의 메일을 적으십소");
if(!$subject) message("제목을 적으십소");
if(!$memo) message("내용을 적으십소");
<font color=blue>아랫부분은 mail()함수에서 쓰게될 중요한 넘들입니다. 걍 외우십쇼.
</font>
$mh .= "Return-Path: $frommailrn";
$mh .= "From: $name <$frommail>rn";
<font color=blue>아래 striptslashes() 함수는 각 줄의 끝에 붙어 있는 슬래쉬를 제거하는 넘입니다.</font>
$memo = stripslashes($memo);
<font color=blue>아래 mail() 함수가 메일을 보내주는 넘입니다. mail(받는 사람 주소, 제목, 내용, 보내는 사람에 대한 정보)식으로 하면 됩니다.</font>
mail($tomail , $subject , $memo , $mh);
echo " 편지가 발송되었습니다.";
exit;
?>
댓글 4
-
피너츠
2003.09.16 04:49
-
impre
2003.09.16 04:53
최강남자킹 님 컴을 서버로 해서 하신거죠? 컴에서 메일서버역활을 못하는건데...혹시 IIS도 같이 까셨나요?
아니면 STMP 설정이 잘 못 되었다고 밖에는...
마지막에 mail($tomail , $subject , $memo , $mh); 에서..
$memo에 stripslashes를 주셨는데...따음표 같은게 들어가면 에러가 나지 않을까요??
mail("$tomail","$subject","$memo",$mh); 라고 해두시는게 좋을것 같습니다.
회신 혹은 에러났을때 받을 수 있는 보내는 사람 이메일 주소를 포함하셔야죠. ^^
그리고 뒤에 rn 이라고 하신거요..앞에 \가 붙어야 되는건데 혹시 올리시려구 빼신건가요??
$mh .= "Return-Path: $frommail\r\n";
$mh .= "Reply-To: $frommail\r\n";
$mh .= "From: $name <$frommail>\r\n";
도음이 안되었네요. ^^;; -
피너츠
2003.09.16 11:49
따옴표나 문법은 이상없구요
SMTP 설정 에러입니다. -
피너츠
2003.09.16 11:49
탕 !
php의 mail함수는 OS에 SMTP 같은 메일서버데몬을 이용해서
메일을 발송해주는 것이거든요..
에러메세지를 보면 SMTP서버에 접속할수 없다고 나오는 것이구요
SMTP 서버 셋팅해주시면 사용가능합니다.