首页 > 代码库 > 用PHP Email发送表单内容(3)-mail()函数的几个参数详解

用PHP Email发送表单内容(3)-mail()函数的几个参数详解

这一节主要讲的是mail函数。

首先阅读手册,看看mail函数的基本形式:http://php.net/manual/en/function.mail.php

mail();函数接受几个参数:

第一个参数:收件人

$to = ‘david@example.com’;

或者我们有多个收件人:

$to = ‘david@example.com’,’james@example.com’;

或者我们还可以加上收件人的名字:

$ = ‘david <david@example.com>,james <james@example.com>’;

第二个参数:邮件主题

$subject = ‘这是邮件的主题’;

第三个参数:邮件内容

$body = ‘这里是邮件的内容部分’;

注意:$body必须是一个single string,如果你要用到不同的数据来源,请将他们全部组合成一个single string

 

以上三个参数就是mail();函数所必须的三个参数,剩下的参数是optional:

Mail($to ,$subject ,$body);

剩下的两个参数不是必须的,但也经常会用到:

第四个参数:headers

$headers 就是email的headers 例如:Bcc,Cc,From等;如果你要加入多余一个的headers,需要把每一个单独的headers用\r\n分割开来。

$headers = “From:webmaster@example.com”;(要用双引号,因为里面要加入\r\n)有些服务器自动设定了这个From,但如果服务器没有自动设置,你需要在这里进行设置,否则会出现错误。

Mail();函数默认使用Western European encoding,如果要使用utf-8编码,则需要再$headers中加入一句:

$headers .= “Content-Type:text/plain; charset-utf-8\r\n”;

如果要抄送给某人,则:

$headers .=”Cc: myfriend@example.com”;

第五个参数,是服务器需要的参数,检测你是否有权限发邮件,防止垃圾邮件。

‘-fwangjianhua@example.com’;(由-f开头,然后紧跟你的邮箱地址)

 

整个mail();函数返回一个布尔值,如果发送成功了(这里是指PHP已经将这些数据成功的提交给了mail agent,并不是100%发送成功了),则返回true,否则返回false,我们可以存储这个数据 ,因为后面要用到。

  1 $sucess = mail($to ,$subject, $body, $heders, ‘-fwangjianhua@example.com’); 


 

除了上一节的表格文件,这一件我们又新建了一个mail.php用来处理邮件有关的逻辑。所以,到了这一节有两个PHP文件,代码分别是:

form.php:

 1 <html> 2     <head> 3         <meta charset="utf-8"> 4         <title>联系我们</title> 5         <link href="http://www.mamicode.com/test.css" rel="stylesheet" type="text/css"> 6         <style> 7             input,label,textarea{ 8                 display:block; 9                 margin:1em;10             }11             textarea{12                 width:400px;13                 height:200px;14             }15         </style>16     </head>17     18     <body>19         <form method="post" action=‘<?php echo($_SERVER[‘PHP_SELF‘]); ?>‘;>20             <label>姓名:</label>21             <input type="text" name="name" id="name"></input>22             23             <label>邮箱地址:</label>24             <input type="text" name="email" id="email"></input>25             26             <label>姓名:</label>27             <textarea name="comment" id="comment"></textarea>28             29             <input type="submit" name="send" id="send" value="http://www.mamicode.com/提交评论"></submit>30         </form>31         32     <?php33         if($_POST){34             echo ‘我们收到了来自$_POST的信息‘;35             print_r($_POST);36         }elseif($_GET){37             echo ‘我们收到了来自$_GET的信息‘;38             print_r($_GET);39         }40     ?>41     </body>42 </html>

mail.php:

1 <?php2 $to =‘Wang Jian <wangjianhua@example.com>,anothe<anotheremail@example.com>‘;3 $subject = ‘这是邮件主题部分‘;4 $body = ‘这是邮件主体部分‘;//邮件主体部分必须是一个single string,所以如果要用到许多不同的数据来源,需要把他们全部组合成一个single string5 $headers = "From:webmaster@example.com\r\n";//因为里面有转义字符,所以要用双引号,不同的headers项目必须要用转义字符隔开;6 $headers .= "Content-Type:text/plain; charset-utf-8\r\n";7 $headers .= "Cc:myfriend@example.com"8 9 $sucess = mail($to, $subject, $body, $headers, ‘-fwangjianhua@example.com‘);

 

用PHP Email发送表单内容(3)-mail()函数的几个参数详解