form 메일보내기 mail()
2022. 2. 15. 12:22ㆍStudy/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주소) 와 같이 나오는 경우 해당 아이피가 블랙리스트에 등록되어 있는 것입니다. 아이피 블랙리스트에서 제외되도록 해제 신청을 하시거나 다른 아이피를 사용해야 한다.
부트스트랩 이메일보내기
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 |