用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]ample.com”;

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

‘[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]‘);
时间: 2024-08-08 14:11:38

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

用PHP Email发送表单内容(10)- 发送邮件

这一节的内容是发送邮件,有以下几点需要注意: 1.mail函数的格式,各个参数的格式: 2.发送成功之后,应该给用户怎样的反馈? 3.如果没有发送成功,改给用户什么样的反馈? 主要是增加了下面这些代码: mail_process.php 1 $mailSended = mail($to ,$subject, $message, $headers, $authenticate);//这里直接换做mail函数 2 if(!$mailSended){ 3 $errors['mailfail'] = t

用PHP Email发送表单内容(7)- 如何防止非法内容的输入?

这一节主要由这些内容: 1.判断用户输入的内容是否合法?(用正则表达式,这个需要掌握): 2.如果用户输入的内容不合法,请显示相应的警告信息,并且停止之后的操作: 这里以防止email inject header为例: 首先看看完成之后的完整的代码: form.php: 1 <?php 2 $missing = array();//用于存储用户没有填写的信息: 3 $error = array();//用于存储用户填写错误的信息: 4 //具体如何识别没有填写或者填写错误的信息,然后把它们存储到

用PHP Email发送表单内容(3)-根据用户的输入显示错误信息

这一节内容不多,主要由两个地方需要注意: 1.用in_array判定一个变量是否在一个数组中,这是我们判定某一个表单上会否输入或者有错的依据: 2.PHP的条件语句可以可以被<?php ?>标签分隔开来,也就是说首位在不同的标签中,中间部分依然会当做条件语句的一部分,只有判定为true的时候才会显示或者执行. 看一段代码: 1 <?php 2 $missing = array();//用于存储用户没有填写的信息: 3 $error = array();//用于存储用户填写错误的信息: 4

用PHP Email发送表单内容(9)- Buliding the message body

这一节只有一个内容,就是用用户填写的内容自动生产我们的邮件内容,当然还要进行一系列的判定. 邮件主题的内容,是由下面这段代码实现的,看里面的注释就可以理解了: 1 if(!$suspect && !$missing && !$errors){//如果出现以上情况,我们不希望这个程序运行: 2 $message = ''; //先建立$message以后再慢慢的往里面加内容; 3 foreach($expected as $item){ //谨慎起见,我只希望希望的内容出现在

用PHP Email发送表单内容(5)-如何保存用户已经输入的正确信息?

用户输入的信息 ,我们已经通过$$key这个东西将用户的输入存储起来了 ,即我们得到了$name,$email,$comment这些信息.我们现在要做的就是在用户点击submit btn之后将这些信息赋给input的value,或者在textare中显示出来. 为了防止用户输入的某些数值显示出错,需要用到htmlentites函数(点击查看详情). 方法其实很简单,看下面的代码: 1 <input type="text" name="name" id=&quo

用PHP Email发送表单内容(2)-如何去除不必要的反斜线?(magic_quotes_gpc)

这一节的主要内容比较简单,就是去除不必要的反斜线. 其实这是个历史遗留问题,以前PHP为了方便初学者而加入的内容,但是后来发现它造成了更多的问题,而且在现在的语言当中已经被抛弃了 This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0. 扩展阅读:http://php.net/manual/en/security.magicquotes.php(官方手册) 只要知道两种关闭magic_quotes_

js控制select选中显示不同表单内容

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

webform快速创建表单内容文件--oracle 数据库

使用方法 前台页面这样写就足够了 <form class="stdform" runat="server"> <div id="field_tab_content" runat="server"></div> </form> 新增编辑加载页面(改页面需要继承CreateModel类) Type type; public decimal id = 0; protected void

vue+element-ui 实现重置表单内容

今天在做入院管理的时候,需要实现表单内容以及验证信息的重置,具体效果如下: 当我再点击添加添加住院患者按钮打开表单时,应该是这个样子的: 根据Element-UI官方文档提供的方法,我们可以使用这个函数: resetForm(formName) { this.$refs[formName].resetFields(); } 实际使用的时候代码: this.visible = true; this.resetForm('form'); 先显示对话框,再重置表单,如果这两行代码顺序颠倒,点击添加住院