一、介绍

mail()函数,你能用此函数发送电子邮件。

需求

为了能使用Mail函数,在你的系统中,PHP必须有编译发送二进制邮件文件的权力。如果你用其它的邮件程序,例如qmail或postfix,你必须有把握使用它们发送邮件包。PHP将首先在你的路径上寻找sendmail,于是下列各项路径:

:/usr/bin :/usr/sbin :/usr/etc :/etc:/usr/ucblib

:/usr/lib是被推荐的。同样编译PHP的使用者一定有存取二进制的sendmail权力。

安装

这些函数作为 PHP 核心的一部分,无需被安装即可使用。

运行时配置

这些函数的行为受到全局配置文件 php.ini 的影响。

表格 1. Mail基本配置选项:

名称

默认值

可改变值

SMTP

"localhost"

PHP_INI_ALL

smtp_port

"25"

PHP_INI_ALL

sendmail_from

NULL

PHP_INI_ALL

sendmail_path

DEFAULT_SENDMAIL_PATH

PHP_INI_SYSTEM

为了更多的有关Mail的配置选项请看see ini_set()函数。以下是该配置选项的简要解释。

SMTP string

仅用在Windows: SMTP服务器的DNS名字或IP地址。PHP在用mail()函数发送邮件时将用SMTP服务器。

smtp_portint

仅用在Windows:当用mail()函数发送邮件时设置连接到指定SMTP服务器的端口号,默认: 25。仅在PHP

4.3.0后可用。

sendmail_from string

PHP在Windows系统中发送邮件时,将用"From:"邮件地址。

sendmail_path string

在什么地方找到发送邮件程序。通常在:

/usr/sbin/sendmail或/usr/lib/中。在这配置选项为了你能正常工作而设置了一个默认值。但是如果它失败,你能在这里设定它。

如果系统不能使用sendmail,应该按这个指示设置sendmail包裹器/

替换他们提供的邮件系统。举例来说,Qmail使用者能设置它到新的路径:

/var/qmail/bin/sendmail或/var/qmail/bin/qmail-inject。

qmail-正确地处理邮件而不需要任何的选项。

资源类型

该扩展模块未定义任何资源类型。

预定义常量

该扩展模块未定义任何常量

二、使用方法

语法:

bool mail ( string to, string subject, string message [,

string additional_headers [, string

additional_parameters]])

mail()函数可以发送指定的消息(string message)到指定的邮件地址(string

to)。多个邮件地址之间要用逗号分割。能用这个函数发送邮件附件和特殊类型。

在上面的语法中的各个参数代表的意思是:

string to——收件人的email地址、

string subject——email的主题、

string message——email的正文、

string additional_headers——加email的附加信息到信件头尾部。

如果邮件成功的被发送mail()函数将返回TRUE,否则返回FALSE。 注意!

mail()函数在Windows中的执行方法有很多地方不同于UNIX系统。

1、它不用局部二进制构成消息体;

2、类似 From:, Cc:, Bcc:和Date:的headers头元素,首先不被MTA解释,但能被PHP解释。 PHP

< 4.3仅支持 Cc:且区分大小写, PHP >= 4.3支持所有提及的headers头元素而且不区分大小写。

二.一、例子 1、发送邮件:

mail("joecool@example.com", "My Subject", "Line 1nLine 2nLine 3");

二.二、如果使用第四个参数,这个参数字串将插入信件头尾部。这是典型的插入用于说明附加信件头信息。多个附加信件头信息之间要用回车r和换行n符隔开。

例子 2. 发送附加信件头信息邮件:

mail("nobody@example.com", "the subject", $message,"From: webmaster@{$_SERVER[’SERVER_NAME’]}rn"    ."Reply-T webmaster@{$_SERVER[’SERVER_NAME’]}rn"."X-Mailer: PHP/" .phpversion());

二.三、如果用additional_parameters参数,当发送邮件时程序用sendmail_path配置设置一个附加参数。例如,当在邮件前用-f选项时这能用来设定寄件人地址信封。当你用这个方法设置寄件人信封时,你也许需要加那个用户到你的WEB服务器You

may need to add the user that your web server runs as to your

sendmail configuration to prevent a ’X-Warning’ header from being

added to the message when you set the envelope sender using this

method.

例子 3. 发送附加的信件头信息邮件而且附加一个指令参数。

mail("nobody@example.com", "the subject", $message,"From: webmaster@{$_SERVER[’SERVER_NAME’]}",       "-fwebmaster@{$_SERVER[’SERVER_NAME’]}");

注意:其中的第五个参数附加在PHP 4.0.5版本中。在PHP

4.2.3以后的版本中的安全模式中被禁止,如果用它的话将返回一个警告信息和返回FALSE值。

你同样能用简单的字符串构造技术建立一个复杂的邮件消息。

例子 4. 发送一个复杂邮件

/*收件人*/

$to = "Mary " . ", " ; //注意逗号

$to .= "Kelly ";

/*主题*/

$subject = "Birthday Reminders for August";

/*正文*/

$message = ’

Here are the birthdays upcoming in August!

’;

/*你能设置头内容:Content-type来发送HTML格式邮件。*/

$headers = "MIME-Version: 1.0rn";

$headers .= "Content-type: text/html; charset=iso-8859-1rn";

/*附加头消息*/

$headers .= "From: Birthday Reminder rn";

$headers .= "Cc: birthdayarchive@example.comrn";

$headers .= "Bcc: birthdaycheck@example.comrn";

/*发送它*/

mail($to, $subject, $message, $headers);

@example.com>@example.com>@example.com>

注意:

1、不要在收件人地址和主题中有换行符号,否则邮件可能不能被发送出去。

2、收件人地址参数(string to)中不能存在以"Something

"形式地址,否则当用MTA时mail命令可能不被正确的分析。

3、PHP使用mail函数发送邮件标题乱码问题 PHP程序使用mail()函数发送邮件的时候,标题中文的话会出现乱码。

解决方法:

先用函数base64_encode() — 使用 MIME base64 对数据进行编码 标题字符串前加编码类型例如:

=?UTF-8?B? 标题字符串后加:?= 邮件header说明Content-type — 防止邮件正文也乱码

举例:

$to         = 'xinple@example.com';

$subject  = "=?UTF-8?B?".base64_encode('邮件标题')."?=";

$headers  = 'MIME-Version: 1.0' . "rn";

$headers .= 'Content-type: text/html; charset=utf-8' . "rn";

// Additional headers

$headers .= 'To: Xinple' . "rn";

$headers .= 'From: Admin ' . "rn";

$headers .= 'Reply-To: Xinple' . "rn";

mail($to, $subject, $message, $headers);@example>@example.com>@example.com>

(责任编辑:mas)

mail函数 开启php,PHP mail函数使用详解相关推荐

  1. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  2. python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...

  3. python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...

  4. python函数定义及调用-python函数声明和调用定义及原理详解

    这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数是指代码片段,可以重复调用,比如我们前 ...

  5. python函数声明和调用定义及原理详解

    这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数是指代码片段,可以重复调用,比如我们前 ...

  6. python函数中可变参数的传递方式_详解Python函数可变参数定义及其参数传递方式...

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...

  7. 一元三次方程求解matlab_初中数学最全函数/方程【实际应用题】分类详解提升必学必练!...

    感谢您关注"深圳中考数学"公众号,如您尚未关注,请点击上方蓝字关注我们,获取更多知识方法.想了解高考资讯的,请关注"深圳优秀家长论坛".想了解高考资料的,请关注 ...

  8. python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过 ...

  9. python值函数名的使用以及闭包,迭代器详解

    一.函数名的运用 函数名就是一个变量名,但它是一个特殊的变量名,是一个后面加括号可以执行函数的变量名. def func():print("我是一个小小的函数") a = func ...

  10. JQuery的ready函数与JS的onload的区别详解

    JQuery的ready函数与JS的onload的区别: 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结 ...

最新文章

  1. 计算机jsp外文文献,计算机JSPweb外文翻译外文文献英文文献-20210615222802.docx-原创力文档...
  2. 博弈问题及SG函数(真的很经典)
  3. 王守臣 | 文字不灭:省的钱,分一半
  4. Linux搭建SVN服务器
  5. Bex5开发平台分辨率问题解决方法
  6. 计算机应用基础好不好考,计算机应用基础好考么
  7. Excel技巧[EXCEL 下拉填充公式,保持公式部分内容不变,使用绝对引用]
  8. 华数机器人旋转编程_华数机器人离线编程软件简介与InteRobot2018 新增功能
  9. 树莓派Raspberry Pi 系统可连接家庭wifi 无法远程故障
  10. (附源码)ssm人力资源管理系统 毕业设计 271621
  11. dreamware html中加入flv,Dreamweaver插入FLV文件技巧
  12. Google推出网页加速工具 - Page Speed (Firefox插件)
  13. java swing是什么_JAVA初学者:swing是什么?
  14. python有什么颜色_Python中常见颜色记录
  15. 判断一颗二叉树是否对称
  16. Rsync: @ERROR: Auth Failed On Module XXX错误原因及解决办法
  17. 什么认证在云计算行业内的含金量最大?考试费用贵不贵?
  18. java 生成word目录_java代码生成word目录
  19. lattice fpga ddr3 读写控制
  20. 数学建模题目之在线教学的分析与研究

热门文章

  1. android guide 中文,Android API Guide:Toast 中文翻译
  2. vba把json转数组中_JavaScript 中的“黑话”
  3. 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点
  4. sql 连接数不释放 ,Druid异常:wait millis 40000, active 600, maxActive 600
  5. samba 设置文件的读写权限
  6. 小心错误使用EasyUI 让网站性能减半
  7. MonkeyRunner之小白如何使用MonkeyRecorder录制回放脚本
  8. C++字符串处理封装类String
  9. MongoDB (六) MongoDB 集合操作
  10. Android下的数据储存方式(三)