浏览器访问php脚本通过sendmail用mail函数发送邮件
前几天做项目遇到这样的一个问题:当某一个结点下有新的文章发表的时候,以邮件的形式通知该结点下的所有用户。
这就需要用到邮件发送的功能。
因为项目是php语言做的,所以最简单的方法就是使用php自带的函数mail。如果是java语言的项目,那么邮件发送函数要自己写一个类。
php自带有Mail这样的一个类,使用mail函数其实很简单,手册中都有详细的说明,可是具体使用时,情况复杂的,难免就要遇到很多问题。
例如:编写mail脚本的时候,将此脚本通过命令行运行,或者shell运行都是没有问题的。可是部署到项目中,如果想通过浏览器访问此脚本,那么mail函数总是返回false。
下面总结一下如何在linux下面配置sendmail,使其能够配合php的mail函数发送邮件:
- 首先就是在编译php的时候,要使用编译选项--enable-mail,否则mail函数无法使用。
- 解决此问题的办法是修改php的配置文件php.ini,找到如下配置:
sendmail_path = /bin/sendmail -t
如果以前没有修改过,那么这一行可能是被注释掉了,把后面的路径改为自己服务器的sendmail执行文件的路径,最重要的一点就是后面的参数-t,看到有些文档,博客说后面可以不用参数,我没有验证,但是建议还是加上。
我的项目在发送邮件之前设置了邮件的很多格式,所以有些参数也就不用添加了,但是没有传参数的mail函数在被调用的时候,配置文件中的参数就显现了他的作用。
最重要的一点说明:在配置文件中是sendmail可以设置参数的。
使用linux,具体说使用sendmail传参数的方式有很多,要配合的当,配合不当简单的问题是覆盖,复杂的就是发送失败之类的问题。
像这样用脚本可以发送邮件,但是通过浏览器不能发送的问题还是首次遇到,自己总结的一点经验希望对遇到同样类型问题的朋友有用。
浏览器访问php脚本通过sendmail用mail函数发送邮件的更多相关文章
- PHP 在windows下配置sendmail,通过 mail() 函数发送邮件
php mail()函数在windows不能用,需要安装sendmail. 1. 从http://glob.com.au下载sendmail.zip 2. 解压sendmail.zip到目录下(最好使 ...
- PHP使用mail函数发送邮件
yum install sendmail #需要使用到sendmail hostname jb51.net #建议修改主机名为域名格式,否则启动sendmail会很慢 systemctl start ...
- php mail 函数发送邮件
当然你可以通过php ,在自己的站点制作一个反馈表单, 我这次的需求是用email 的形式发送数据报表,结构比较简单 // 收件人地址(此处只可以写一个地址,写多个地址,只有最后一个地址生效) $to ...
- PHP使用mail()函数发送邮件流程以及注意事项
1. 配置 php.ini sendmail_path = /usr/sbin/sendmail -f yourname@sth.com -t -i 2. 使用函数 mail($to, $subjec ...
- CentOS7 配置sendmial + PHP mail函数发送邮件
https://blog.csdn.net/jiabangok/article/details/51840556
- PHP的mail()函数可以实现直接用脚本发送邮件
PHP的mail()函数可以实现直接用脚本发送邮件. 用mail()函数发送邮件之前,首先需要在php.ini文件里面设置一下邮件服务属性,主要的设置选项如下: 属性 缺省值 说明 Changeabl ...
- PHP (sendmail / PHPMailer / ezcMailComposer)发送邮件
一. 使用 PHP 内置的 mail() 函数 1. Windows 下 环境:WampServer2.5(Windows 10,Apache 2.4.9,MySQL 5.6.17,PHP 5.5.1 ...
- Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)
背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...
- CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9.8 ...
随机推荐
- 第三方库FMDB的使用
1.FMDB简介 什么是FMDB FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API. 为什么使用FMDB 使用起来更加面向对象,省去了很多麻烦.冗余的 ...
- SQLHELPER 帮助类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- linux 下maven安装
版本要求maven3.2.3 软件下载 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3 ...
- 每天一个linux命令(45)--telnet命令
每天一个Linux命令,今天是网络命令中的Telnet. Telnet 命令通常用来远程登录,Telnet 程序是基于 Telnet 协议的远程登录客户端程序.Telnet 协议是TCP/IP协议族中 ...
- 纯CSS3之五子棋(黑白棋)画法
无聊想用JS写个五子棋玩玩,这边先用CSS3画出了五子棋,感觉挺惊艳的.发上来看看 PS:第一次发博文T-T 此为个人原创. 不多说上图: 代码如下: <!DOCTYPE html> & ...
- Express4.x动态的销毁或者替换中间件(app.unuse)
需求描述 expres4.x托管静态资源时以中间件的方式将server-static挂载到app上,正常的使用没有问题,但是有时候我们需要动态的托管一些静态资源,也就是静态资源的目录不确定的时候该怎么 ...
- Python入门教程(2)
人生苦短,我玩蛇0.0! Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991 ...
- JS中一些常用的内置对象
在JS中,经常会遇到明明知道一个对象有某个属性或方法,可是又不知道怎么写的情况.下面,我就罗列了一些JS中常用的内置对象的属性和方法. Math对象: Math对象的作用是执行常见的算术任务. 首先M ...
- Python 模块之 string.py
用法 字符串常量: import string print(string.ascii_lowercase) print(string.ascii_uppercase) print(string.asc ...
- 1349: [Baltic2006]Squint
1349: [Baltic2006]Squint Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 427 Solved: 248[Submit][Stat ...