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

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

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

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

第一个参数:收件人

$to = ‘[email protected]’;

或者我们有多个收件人:

$to = ‘[email protected]’,’[email protected]’;

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

$ = ‘david <[email protected]>,james <[email protected]>’;

第二个参数:邮件主题

$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:[email protected]”;(要用双引号,因为里面要加入\r\n)有些服务器自动设定了这个From,但如果服务器没有自动设置,你需要在这里进行设置,否则会出现错误。

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

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

如果要抄送给某人,则:

$headers .=”Cc: [email protected]”;

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

[email protected]’;(由-f开头,然后紧跟你的邮箱地址)

 

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

  1 $sucess = mail($to ,$subject, $body, $heders, ‘[email protected]’); 


 

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

form.php:

 1 <html>
 2     <head>
 3         <meta charset="utf-8">
 4         <title>联系我们</title>
 5         <link href="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="提交评论"></submit>
30         </form>
31         
32     <?php
33         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 <?php
2 $to =‘Wang Jian <[email protected]>,anothe<[email protected]>‘;
3 $subject = ‘这是邮件主题部分‘;
4 $body = ‘这是邮件主体部分‘;//邮件主体部分必须是一个single string,所以如果要用到许多不同的数据来源,需要把他们全部组合成一个single string
5 $headers = "From:[email protected]\r\n";//因为里面有转义字符,所以要用双引号,不同的headers项目必须要用转义字符隔开;
6 $headers .= "Content-Type:text/plain; charset-utf-8\r\n";
7 $headers .= "Cc:[email protected]"
8 
9 $sucess = mail($to, $subject, $body, $headers, ‘[email protected]‘);

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。