php 웹프로그래밍을 하시다 보면 방문자가 작성한 내용이 게시판 처럼 글을 저장하거나 아니면 특정한 이메일 주소로 보내지도록 하는 경우가 많습니다.
그 중에서도 게시판 관리를 하기 꺼려하는 고객 분들이나 업체 관계자들을 위해서 메일로 보내지도록 하는 방법을 이용하는 편이 나을 것입니다.
아래의 함수는 utf-8 형식으로 html 메일을 보내수 있도록 하는 php 이메일 함수입니다.
<?php
// send html mail
function send_htmlmail($fromEmail, $fromName, $toEmail, $toName, $subject, $message){
$charset='utf-8'; // 문자셋 : UTF-8
$body = iconv('utf-8', 'euc-kr', $message); //본문 내용 UTF-8화
$encoded_subject="=?".$charset."?B?".base64_encode($subject)."?=\n"; // 인코딩된 제목
$to= "\"=?".$charset."?B?".base64_encode($toName)."?=\" <".$toEmail.">" ; // 인코딩된 받는이
$from= "\"=?".$charset."?B?".base64_encode($fromName)."?=\" <".$fromEmail.">" ; // 인코딩된 보내는이
$headers="MIME-Version: 1.0\n".
"Content-Type: text/html; charset=euc-kr; format=flowed\n".
"To: ". $to ."\n".
"From: ".$from."\n".
"Return-Path: ".$from."\n".
"urn:content-classes:message\n".
"Content-Transfer-Encoding: 8bit\n"; // 헤더 설정
//send the email
$mail_sent = @mail( $to, $encoded_subject, $body, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
return $mail_sent;
}
?>
위 함수를 실제로 사용할실 때는 아래와 같이 하면 됩니다. 물론 위 함수의 매개 변수만 잘 이해하신다면 사용하시는데는 큰 문제가 없을것 같네요.^^
<?php
$fromEmail = "보내는 사람의 이메일주소";
$fromName = "보내는 사람의 이름";
$toEmail = "받는 사람의 이메일주소";
$toName = "받는 사람의 이름";
$subject = "이메일의 제목. ".date("Y-m-d H:i:s", time());
$message = "<html><body>";
$message .= "<p>보내고자 하는 이메일 내용을 HTML 로 구성하시면 됩니다.</p><br>";
$message .= "<p>보내고자하는 내용을 이렇게 추가 하시면 됩니다. </p><br>";
$message .= "</body></html>";
$result = send_htmlmail($fromEmail, $fromName, $toEmail, $toName, $subject, $message);
echo $result;
?>
이제 PHP 로 메일 보내는것은 어렵지 않으시죠? 다음이나 네이버 그리고 구글 등으로 메일 발송이 잘 되더라구요. 참고로 이 메일 전송 기능을 이용하려면 서버에 메일 서버가 설치되어있어야 가능합니다. 만일 설치되어있지 않다면 메일은 발송이 안된다는점 참고해주세요.^^
'IT News > PHP' 카테고리의 다른 글
<input type="text" />ime-mode 속성 : 텍스트박스 입력모드 (0) | 2013.10.23 |
---|---|
php 언어셋(charset) 변경 - php header를 euckr 에서 utf-8 로 바꾸기 (0) | 2013.04.03 |
php 에서 다른 php를 실행(exec)하여 그 값을 가져오기 (0) | 2012.08.10 |