폼메일이란?
폼메일(Formmail)은 웹 사이트에서 사용자로부터 입력받은 데이터를 이메일을 통해 전송하는 시스템을 의미합니다. 이를 통해 웹사이트 방문자가 특정 양식을 작성하여 제출하면 그 내용이 사전에 지정된 이메일 주소로 전송됩니다. 폼메일은 주로 다음과 같은 목적으로 사용됩니다:
- 문의/피드백 수집: 사용자로부터 문의 사항이나 피드백을 받아볼 수 있습니다.
- 가입 신청서: 특정 서비스나 이벤트에 대한 신청서를 받아볼 수 있습니다.
- 설문 조사: 사용자 의견을 수집하여 분석할 수 있습니다.
- 기타 데이터 수집: 사용자 정보나 기타 데이터를 수집하여 이메일로 받아볼 수 있습니다.
폼메일을 구현하기 위해서는 다음과 같은 단계가 필요합니다:
- HTML 폼 작성: 사용자가 데이터를 입력할 수 있는 폼을 HTML로 작성합니다.
- 서버 측 스크립트 작성: 사용자가 폼을 제출하면 서버 측에서 그 데이터를 받아 이메일로 전송하는 스크립트를 작성합니다. PHP, ASP, Python 등 다양한 언어를 사용할 수 있습니다.
- 폼 연결: HTML 폼에서 데이터를 서버 측 스크립트로 전송할 수 있도록 연결합니다.
예시 코드
1. HTML 폼 작성 (form.html)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>폼메일 예시</title>
</head>
<body>
<h2>Contact Us</h2>
<form action="send_mail.php" method="post">
<label for="name">이름:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">이메일:</label>
<input type="email" id="email" name="email" required><br><br>
<label for="message">내용:</label><br>
<textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br>
<input type="submit" value="발송">
</form>
</body>
</html>
2. PHP 메일 전송 파일 (send_mail.php)
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 폼에서 전송된 데이터 가져오기
$name = htmlspecialchars($_POST['name']);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$message = htmlspecialchars($_POST['message']);
// 이메일 설정
$to = "youremail@example.com"; // 실제 이메일 주소로 변경
$subject = "폼메일 예시 제목";
$headers = "From: " . $email . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
// 이메일 내용 작성
$email_content = "<html><body>";
$email_content .= "<h2>폼메일 예시 내용</h2>";
$email_content .= "<p><strong>이름:</strong> {$name}</p>";
$email_content .= "<p><strong>이메일:</strong> {$email}</p>";
$email_content .= "<p><strong>내용:</strong><br>{$message}</p>";
$email_content .= "</body></html>";
// 이메일 전송
if (mail($to, $subject, $email_content, $headers)) {
echo "메시지 전송에 성공했습니다.";
} else {
echo "메시지 전송에 실패했습니다.";
}
} else {
echo "요청이 정확하지 않습니다.";
}
?>
작동 방식
- 사용자는 'form.html' 페이지에서 이름, 이메일, 메시지를 입력하고 "발송" 버튼을 클릭합니다.
- 폼 데이터는 'send_mail.php'로 전송됩니다.
- 'send_mail.php'스크립트는 폼 데이터를 받아서 이메일로 전송합니다.
이 방식은 간단하고 효과적이지만, 실제 운영 환경에서는 보안 강화 및 스팸 방지를 위한 추가적인 조치가 필요합니다. 예를 들어, reCAPTCHA를 추가하거나 입력 데이터에 대한 검증을 강화하는 등의 방법을 고려할 수 있습니다.