php简单实现发送带附件的邮件

时间:2022-09-25 08:36:42

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

下面是静态html代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<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文件代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?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程序设计有所帮助。