龙空技术网

PHP-使用PHP发送电子邮件

IT闻道者 254

前言:

今天我们对“php发送邮件”可能比较看重,同学们都需要学习一些“php发送邮件”的相关内容。那么小编同时在网络上网罗了一些有关“php发送邮件””的相关知识,希望各位老铁们能喜欢,咱们快快来了解一下吧!

必须在php.ini文件中正确配置PHP ,并详细说明系统如何发送电子邮件。打开/ etc /目录中的php.ini文件,并找到标题为[邮件功能]的部分。

Windows用户应确保提供了两个指令。第一个称为SMTP,它定义您的电子邮件服务器地址。第二个称为sendmail_from,它定义您自己的电子邮件地址。

Windows的配置应如下所示:

[mail function]; For Win32 only.SMTP = smtp.secureserver.net; For win32 onlysendmail_from = webmaster@tutorialspoint.com

Linux用户只需要让PHP知道他们sendmail应用程序的位置即可。路径和任何所需的开关应指定给sendmail_path指令。

Linux的配置应该看起来像这样-

[mail function]; For Win32 only.SMTP = ; For win32 onlysendmail_from = ; For Unix onlysendmail_path = /usr/sbin/sendmail -t -i

现在您可以开始了-

发送纯文本电子邮件

PHP利用mail()函数发送电子邮件。此功能需要三个必填参数,用于指定收件人的电子邮件地址,邮件主题和实际邮件,此外还有其他两个可选参数。

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

这是每个参数的说明。

一旦调用了邮件功能,PHP将尝试发送电子邮件,如果成功,它将返回true;如果失败,则将返回false。

可以将多个收件人指定为逗号分隔列表中mail()函数的第一个参数。

发送HTML电子邮件

当您使用PHP发送文本消息时,所有内容将被视为简单文本。即使您将HTML标签包含在文本消息中,它也将显示为简单文本,并且不会根据HTML语法设置HTML标签的格式。但是PHP提供了将HTML消息作为实际HTML消息发送的选项。

发送电子邮件时,您可以指定Mime版本,内容类型和字符集来发送HTML电子邮件。

以下示例将HTML电子邮件发送到xyz@somedomain.com,并将其复制到afgh@somedomain.com。您可以使用以下方式对程序进行编码:它应接收用户的所有内容,然后发送电子邮件。

<html>      <head>      <title>Sending HTML email using PHP</title>   </head>      <body>            <?php         $to = "xyz@somedomain.com";         $subject = "This is subject";                  $message = "<b>This is HTML message.</b>";         $message .= "<h1>This is headline.</h1>";                  $header = "From:abc@somedomain.com \r\n";         $header .= "Cc:afgh@somedomain.com \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。然后可以在边界内指定文本和附件节。

边界以两个连字符开头,后跟一个唯一的数字,该数字不能出现在电子邮件的消息部分。PHP函数md5()用于创建32位十六进制数字以创建唯一数字。表示电子邮件最后部分的最后边界也必须以两个连字符结尾。

<?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", "youremailaddress@gmail.com",          "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>

标签: #php发送邮件