폼메일(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>
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 "요청이 정확하지 않습니다.";
    }
    ?>
2. 작동 방식
- 사용자는 'form.html' 페이지에서 이름, 이메일, 메시지를 입력하고 "발송" 버튼을 클릭합니다.
- 폼 데이터는 'send_mail.php'로 전송됩니다.
- 'send_mail.php'스크립트는 폼 데이터를 받아서 이메일로 전송합니다.
이 방식은 간단하고 효과적이지만, 실제 운영 환경에서는 보안 강화 및 스팸 방지를 위한 추가적인 조치가 필요합니다. 예를 들어, reCAPTCHA를 추가하거나 입력 데이터에 대한 검증을 강화하는 등의 방법을 고려할 수 있습니다.
