php简单实现发送带附件的邮件
author:一佰互联 2019-04-28   click:205

本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:

下面是静态html代码:

<html> <head> <title>带附件的邮件发送</title> </head> <body>  <form method="post" name="form1" action="sendmail.php" ENCTYPE="multipart/form-data">   <table>   <tr>   <td>发送人:</td>    <td><input type="text" name="from"></td>   </tr>   <tr>   <td>收件人:</td>    <td><input type="text" name="to"></td>   </tr>   <tr>   <td>邮件主题:</td>    <td><input type="text" name="subject"></td>   </tr>   <tr>   <td>邮件内容:</td>    <td><textarea name="body"></textarea></td>   </tr>   <tr>   <td>附件上传:</td>    <td><input type="file" name="upload_file"></td>   </tr>   <tr>    <td span=2>   <input type="submit" value="提交">    <input type="reset" value="重置">    </td>   </tr>   </table>  </form>  </body> </html>

sendmail.php文件代码:

<?php  //获得表单信息 $from = $_POST["from"]; $to = $_POST["to"];  $subject = $_POST["subject"];  $body = $_POST["body"];  // 定义分界线  $boundary = "345894369383"; //分界线是一串无规律的字符 //设置header $header = "Content-type: multipart/mixed; boundary= $boundary/r/n";  $header .= "From:$from/r/n";  //获得上传文件的文件内容 $file = $_FILES["upload_file"]["tmp_name"];  //确定上传文件的MIME类型  $mimeType = $_FILES["upload_file"]["type"];  //获得上传文件的文件名  $fileName = $_FILES["upload_file"]["name"];  //读取上传文件  $fp = fopen($file, "r"); //打开文件 $read = fread($fp, filesize($file)); //读入文件 $read = base64_encode($read); //base64编码  $read = chunk_split($read); //切割字符串 //建立邮件的主体,分为邮件内容和附件内容两部分 $body = "--$boundary  Content-type: text/plain; charset=iso-8859-1  Content-transfer-encoding: 8bit  $body  --$boundary  Content-type: $mimeType; name=$fileName  Content-disposition: attachment; filename=$fileName  Content-transfer-encoding: base64  $read  --$boundary--";  //发送邮件 并输出是否发送成功的信息 if(mail($to, $subject,$body,$header))  {   echo "信件发送成功";  } else  {   echo "信件发送失败";  } ?>

希望本文所述对大家的php程序设计有所帮助。