문서작성 폼 Email 보내기 프로그램 on redgoose note

문서작성 폼 Email 보내기 프로그램

Nest: Development Category: PHP 2013-03-16

  • 문서작성폼에서 항목별로 글을 작성하고 전송 버튼을 누르면 항목 내용대로 이메일 보내는 프로그램이다.
  • 주로 사용하는 용도는 견적서를 작성하여 이메일로 보내거나 문의사항을 작성하여 이메일을 보내는데 사용된다.
  • php에서 mail함수가 지원되어야하며, 2개의 파일로 작성된다.
form.html
<form action="submit.php" method="post">
  <p>
    <label for="email">email</label>
    <input type="text" name="email" id="email">
  </p>
  <p>
    <label for="var1">var1</label>
    <input type="text" name="var1" id="var1">
  </p>
  <p>
    <label for="var2">var2</label>
    <input type="text" name="var2" id="var2">
  </p>
  <p>
    <label for="var3">var3</label>
    <input type="text" name="var3" id="var3">
  </p>
  <p>
    <textarea name="content"></textarea>
  </p>
  <p>
    <input type="submit" value="SUBMIT">
  </p>
</form>
submit.php
// 보내는분 이메일주소
$emailAddress = "address@server.com";

// 메일헤더 설정
$charset = "utf-8";
$headers  = 'MIME=Version: 1.0\n' . "\r\n";
$headers .= 'Return-Path: <'.$emailAddress.'>'."\r\n";
$headers .= 'Content-type:text/html; charset='.$charset."\r\n";
$headers .= iconv('euckr', 'utf-8', 'From: 보낸자이름'.$_POST[email]). "\r\n";

// 메일제목
$title = iconv('euckr', 'utf-8', '이메일내용 제목');

// 내용 필터링
$content = str_replace("\n","<br>", $_POST[content]);
$content = str_replace("\\\"",""", $content);
$content = str_replace("\'","'", $content);
$content = str_replace(" "," ", $content);

// 메일내용을 종합해서 $con변수에 집어넣기 
$con .= "- email : ".$_POST[email]."<br>";
$con .= "- var1 : ".$_POST[var1]."<br>";
$con .= "- var2 : ".$_POST[var2]."<br>";
$con .= "- var3: ".$_POST[var3]."<br>";
$con .= $content;

// 메일전송
$mail = mail($emailAddress, $title, $con, $headers, '-f'.$emailAddress);

// 등록되었는지 검사하기
if ($mail)
{
  echo "등록되었습니다.";
}
else
{
  echo "등록실패";
}
  • 헤더를 명시하면 문자셋 인코딩 문제를 해결할 수 있고(외산 메일 프로그램에 한글이 표현되지 않는 문제가 생긴다.), 보낸사람의 메일 주소도 표기할 수 있다.
  • 미리 현재 주소를 submit.php에 넘겨주고, 메일전송이 완료되면 받았던 주소를 이용해서 다시 이동시키게 하는것이 좋다.