form 메일보내기 mail()

2022. 2. 15. 12:22Study/PHP&MySQL

mail()

mail 함수는 PHP를 이용하여 이메일을 보내는데 사용하는 함수입니다.

 

php mail 문법

mail( "메일받는주소", "메일제목", "메일내용", "메일헤더" );

 

예제1

항목 내용
받는 메일 주소 diceworld@naver.com
보낼 메일 주소 diceworld@naver.com
메일 제목 PHP 메일 발송
메일 내용 PHP mail() 함수를 이용한 메일 발송 테스트
<?
    $to = "diceworld@naver.com";
    $subject = "PHP 메일 발송";
    $contents = "PHP mail() 함수를 이용한 메일 발송 테스트";
    $headers = "From: diceworld@naver.com.\\n";

    mail($to, $subject, $contents, $headers);
?>

 

결과

 

 


 

index.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>메일전송</title>
    <style>
        *{margin:0; padding:0}
        ul{ list-style:none;}

        #mailAddress{width:80%; border:1px solid #ccc; border-radius:10px; margin:20px 5%;
        padding:20px 5%}
        #mailAddress li{ margin-bottom:15px}
        #mailAddress input,
        textarea{width:90%; border-radius:5px; border:0; padding:10px 5%;
        background:#F0F0F0}
     </style>
</head>
<body>
    <div id="mailAddress">
        <form action="mail.php" method="post">
            <ul>
                <li><input type="text" id="uname" name="uname" placeholder="Full name"></li>
                <li><input type="text" id="email" name="email" placeholder="E-mail address"></li>
                <li><input type="text" id="phone" name="phone" placeholder="Phone number"></li>
                <li><textarea name="message"  placeholder="Message" cols="50" rows="15"></textarea></li>
                <li><input type="submit" value="Send E-mail" class="submitBtn"></li>
            </ul>
        </form>
    </div>
</body>
</html>

 

 

mail.php

<meta charset="UTF-8">

<?
    $name_01 = $_POST['uname'];
    $mail_02 = $_POST['email'];
    $phone_03 = $_POST['phone'];
    $msg_04 = $_POST['message'];


    $to = 'test@naver.com';    // 관리자 메일 주소
    $subject = 'XXX사이트에서 관리자에게 보낸 메일';
    $msg = "보낸사람:$name_01\n".
    "보낸사람메일주소:$mail_02\n".
    "보낸사람전화번호:$phone_03\n".
    "내용:$msg_04\n";

    mail($to,$subject,$msg,'보낸사람메일주소:'.$mail_02);   

    echo "<script>
        alert('성공적으로 메일이 전송되었습니다.');
        //history.go(-1);
        location.href='index.html';
    </script>
    "

    /*
    echo '이름:'.$name_01.'<br />';
    echo '메일:'.$mail_02.'<br />';
    echo '메일:'.$phone_03.'<br />';
    echo '내용:'.$msg_04.'<br />';
    echo '메일이 성공적으로 전송되었습니다<br />';
    */
?>

 

 

 


 

메일 발송이 안되는 경우

 

윈도우에서 Apache + PHP를 사용하는 경우

Warning: mail() [function.mail]: [Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\APM_Setup\hotdocs\index.php on line 12

와 같은 오류가 발생할 수 있습니다. 이런 경우 메일 발송 서버를 따로 설치해야 합니다.

 

 

리눅스에서 selinux에 막힌 경우

오류메세지가 표시되지 않는 경우도 존재하는데 리눅스 콘솔창에서 cat/var/log/maillog를 이용하여 어떤 메세지가 나오는지 확인해야 합니다.

만약 postfix/sendmail[숫자]: fatal: chdir /var/spool/postfix: Permission denied 가 로그에 있는 경우 /usr/sbin/setenforce 0를 통ㅎ 잠시 selinux를 끄고 발송을 해보시기 바랍니다.

 

 

스팸메일로 분류되는 경우

메일 발송이 실패하고 리눅스 콘솔창에서 cat / var/log/maillog 명령어를 쳤을 때 Your ip is filtered by RBL. And this connection will be closed. (IP: IP주소) (Caues: http://www.spamhaus.org/query/bl?ip=IP주소) 와 같이 나오는 경우 해당 아이피가 블랙리스트에 등록되어 있는 것입니다. 아이피 블랙리스트에서 제외되도록 해제 신청을 하시거나 다른 아이피를 사용해야 한다.

 

 


 

 

부트스트랩 이메일보내기

mail2.zip
1.90MB

 

contact_me.php

$to = 'webmaster@naver.com'; // 받는이의 메일 주소 수정

 

'Study > PHP&MySQL' 카테고리의 다른 글

회원가입  (0) 2022.02.16
MySQL file upload  (0) 2022.02.15
세션 (Session)  (0) 2022.02.15
쿠키 (Cookie)  (0) 2022.02.15
MySQL 데이터 타입 (자료형) 유형  (0) 2022.02.14