首页 > 代码库 > 用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()函数的几个参数详解