IT News/PHP

PHP HTML 이메일 보내기 소스 코드 (웹프로그래밍 UTF8 웹 메일 발송 PHP 프로그래밍)

skyLove1982 2013. 6. 25. 22:45
반응형

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 로 메일 보내는것은 어렵지 않으시죠? 다음이나 네이버 그리고 구글 등으로 메일 발송이 잘 되더라구요. 참고로 이 메일 전송 기능을 이용하려면 서버에 메일 서버가 설치되어있어야 가능합니다. 만일 설치되어있지 않다면 메일은 발송이 안된다는점 참고해주세요.^^

반응형