PHP-PHP를 사용하여 이메일 보내기

PHP는 php.ini시스템이 이메일을 보내는 방법에 대한 세부 사항이있는 파일. 에서 사용 가능한 php.ini 파일 열기/etc/ 디렉토리 및 제목 섹션 찾기 [mail function].

Windows 사용자는 두 가지 지시문이 제공되었는지 확인해야합니다. 첫 번째는 이메일 서버 주소를 정의하는 SMTP입니다. 두 번째는 자신의 이메일 주소를 정의하는 sendmail_from입니다.

Windows의 구성은 다음과 같아야합니다.

[mail function]
; For Win32 only.
SMTP = smtp.secureserver.net

; For win32 only
sendmail_from = [email protected]

Linux 사용자는 PHP에 자신의 위치를 ​​알려 주기만하면됩니다. sendmail신청. 경로와 원하는 스위치를 sendmail_path 지시문에 지정해야합니다.

Linux의 구성은 다음과 같습니다.

[mail function]
; For Win32 only.
SMTP = 

; For win32 only
sendmail_from = 

; For Unix only
sendmail_path = /usr/sbin/sendmail -t -i

이제 갈 준비가되었습니다.

일반 텍스트 이메일 보내기

PHP는 mail()이메일을 보내는 기능. 이 함수에는 수신자의 이메일 주소, 메시지 제목 및 실제 메시지를 지정하는 세 개의 필수 인수가 필요하며 추가로 다른 두 개의 선택적 매개 변수가 있습니다.

mail( to, subject, message, headers, parameters );

다음은 각 매개 변수에 대한 설명입니다.

Sr. 아니요 매개 변수 및 설명
1

to

필수입니다. 이메일 수신자 / 수신자를 지정합니다.

2

subject

필수입니다. 이메일 제목을 지정합니다. 이 매개 변수는 개행 문자를 포함 할 수 없습니다.

message

필수입니다. 보낼 메시지를 정의합니다. 각 줄은 LF (\ n)로 구분해야합니다. 줄은 70자를 초과 할 수 없습니다.

4

headers

선택 과목. From, Cc 및 Bcc와 같은 추가 헤더를 지정합니다. 추가 헤더는 CRLF (\ r \ n)로 구분해야합니다.

5

parameters

선택 과목. 메일 보내기 프로그램에 추가 매개 변수를 지정합니다.

메일 함수가 호출 되 자마자 PHP는 이메일을 보내려고 시도하고 성공하면 true를, 실패하면 false를 반환합니다.

쉼표로 구분 된 목록에서 mail () 함수에 대한 첫 번째 인수로 여러 수신자를 지정할 수 있습니다.

HTML 이메일 보내기

PHP를 사용하여 문자 메시지를 보내면 모든 내용이 단순 텍스트로 처리됩니다. 텍스트 메시지에 HTML 태그를 포함하더라도 간단한 텍스트로 표시되며 HTML 구문에 따라 HTML 태그 형식이 지정되지 않습니다. 그러나 PHP는 HTML 메시지를 실제 HTML 메시지로 보내는 옵션을 제공합니다.

이메일 메시지를 보내는 동안 HTML 이메일을 보내기 위해 Mime 버전, 콘텐츠 유형 및 문자 집합을 지정할 수 있습니다.

다음 예제는 HTML 이메일 메시지를 [email protected]으로 보내고 [email protected]으로 복사합니다. 이 프로그램은 사용자로부터 모든 콘텐츠를받은 다음 이메일을 보내도록 코딩 할 수 있습니다.

<html>
   
   <head>
      <title>Sending HTML email using PHP</title>
   </head>
   
   <body>
      
      <?php
         $to = "[email protected]";
         $subject = "This is subject";
         
         $message = "<b>This is HTML message.</b>";
         $message .= "<h1>This is headline.</h1>";
         
         $header = "From:[email protected] \r\n";
         $header .= "Cc:[email protected] \r\n";
         $header .= "MIME-Version: 1.0\r\n";
         $header .= "Content-type: text/html\r\n";
         
         $retval = mail ($to,$subject,$message,$header);
         
         if( $retval == true ) {
            echo "Message sent successfully...";
         }else {
            echo "Message could not be sent...";
         }
      ?>
      
   </body>
</html>

이메일로 첨부 파일 보내기

혼합 콘텐츠가 포함 된 이메일을 보내려면 다음을 설정해야합니다. Content-type 헤더 multipart/mixed. 그런 다음 텍스트 및 첨부 파일 섹션을boundaries.

경계는 두 개의 하이픈과 이메일의 메시지 부분에 나타날 수없는 고유 번호로 시작됩니다. PHP 기능md5()32 자리 16 진수를 만들어 고유 번호를 만드는 데 사용됩니다. 이메일의 마지막 섹션을 나타내는 마지막 경계도 두 개의 하이픈으로 끝나야합니다.

<?php
   // request variables // important
   $from = $_REQUEST["from"];
   $emaila = $_REQUEST["emaila"];
   $filea = $_REQUEST["filea"];
   
   if ($filea) {
      function mail_attachment ($from , $to, $subject, $message, $attachment){
         $fileatt = $attachment; // Path to the file
         $fileatt_type = "application/octet-stream"; // File Type 
         
         $start = strrpos($attachment, '/') == -1 ? 
            strrpos($attachment, '//') : strrpos($attachment, '/')+1;
				
         $fileatt_name = substr($attachment, $start, 
            strlen($attachment)); // Filename that will be used for the 
            file as the attachment 
         
         $email_from = $from; // Who the email is from
         $subject = "New Attachment Message";
         
         $email_subject =  $subject; // The Subject of the email 
         $email_txt = $message; // Message that the email has in it 
         $email_to = $to; // Who the email is to
         
         $headers = "From: ".$email_from;
         $file = fopen($fileatt,'rb'); 
         $data = fread($file,filesize($fileatt)); 
         fclose($file); 
         
         $msg_txt="\n\n You have recieved a new attachment message from $from";
         $semi_rand = md5(time()); 
         $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
         $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . "
            boundary=\"{$mime_boundary}\"";
         
         $email_txt .= $msg_txt;
			
         $email_message .= "This is a multi-part message in MIME format.\n\n" . 
            "--{$mime_boundary}\n" . "Content-Type:text/html; 
            charset = \"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . 
            $email_txt . "\n\n";
				
         $data = chunk_split(base64_encode($data));
         
         $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" .
            " name = \"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . 
            //" filename = \"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: 
            base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n";
				
         $ok = mail($email_to, $email_subject, $email_message, $headers);
         
         if($ok) {
            echo "File Sent Successfully.";
            unlink($attachment); // delete a file after attachment sent.
         }else {
            die("Sorry but the email could not be sent. Please go back and try again!");
         }
      }
      move_uploaded_file($_FILES["filea"]["tmp_name"],
         'temp/'.basename($_FILES['filea']['name']));
			
      mail_attachment("$from", "[email protected]", 
         "subject", "message", ("temp/".$_FILES["filea"]["name"]));
   }
?>

<html>
   <head>
      
      <script language = "javascript" type = "text/javascript">
         function CheckData45() {
            with(document.filepost) {
               if(filea.value ! = "") {
                  document.getElementById('one').innerText = 
                     "Attaching File ... Please Wait";
               }
            }
         }
      </script>
      
   </head>
   <body>
      
      <table width = "100%" height = "100%" border = "0" 
         cellpadding = "0" cellspacing = "0">
         <tr>
            <td align = "center">
               <form name = "filepost" method = "post" 
                  action = "file.php" enctype = "multipart/form-data" id = "file">
                  
                  <table width = "300" border = "0" cellspacing = "0" 
                     cellpadding = "0">
							
                     <tr valign = "bottom">
                        <td height = "20">Your Name:</td>
                     </tr>
                     
                     <tr>
                        <td><input name = "from" type = "text" 
                           id = "from" size = "30"></td>
                     </tr>
                     
                     <tr valign = "bottom">
                        <td height = "20">Your Email Address:</td>
                     </tr>
                     
                     <tr>
                        <td class = "frmtxt2"><input name = "emaila"
                           type = "text" id = "emaila" size = "30"></td>
                     </tr>
                     
                     <tr>
                        <td height = "20" valign = "bottom">Attach File:</td>
                     </tr>
                     
                     <tr valign = "bottom">
                        <td valign = "bottom"><input name = "filea" 
                           type = "file" id = "filea" size = "16"></td>
                     </tr>
                     
                     <tr>
                        <td height = "40" valign = "middle"><input 
                           name = "Reset2" type = "reset" id = "Reset2" value = "Reset">
                        <input name = "Submit2" type = "submit" 
                           value = "Submit" onClick = "return CheckData45()"></td>
                     </tr>
                  </table>
                  
               </form>
               
               <center>
                  <table width = "400">
                     
                     <tr>
                        <td id = "one">
                        </td>
                     </tr>
                     
                  </table>
               </center>
               
            </td>
         </tr>
      </table>
      
   </body>
</html>