前几天做项目遇到这样的一个问题:当某一个结点下有新的文章发表的时候,以邮件的形式通知该结点下的所有用户。
这就需要用到邮件发送的功能。

因为项目是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函数发送邮件的更多相关文章

  1. PHP 在windows下配置sendmail,通过 mail() 函数发送邮件

    php mail()函数在windows不能用,需要安装sendmail. 1. 从http://glob.com.au下载sendmail.zip 2. 解压sendmail.zip到目录下(最好使 ...

  2. PHP使用mail函数发送邮件

    yum install sendmail #需要使用到sendmail hostname jb51.net #建议修改主机名为域名格式,否则启动sendmail会很慢 systemctl start ...

  3. php mail 函数发送邮件

    当然你可以通过php ,在自己的站点制作一个反馈表单, 我这次的需求是用email 的形式发送数据报表,结构比较简单 // 收件人地址(此处只可以写一个地址,写多个地址,只有最后一个地址生效) $to ...

  4. PHP使用mail()函数发送邮件流程以及注意事项

    1. 配置 php.ini sendmail_path = /usr/sbin/sendmail -f yourname@sth.com -t -i 2. 使用函数 mail($to, $subjec ...

  5. CentOS7 配置sendmial + PHP mail函数发送邮件

    https://blog.csdn.net/jiabangok/article/details/51840556

  6. PHP的mail()函数可以实现直接用脚本发送邮件

    PHP的mail()函数可以实现直接用脚本发送邮件. 用mail()函数发送邮件之前,首先需要在php.ini文件里面设置一下邮件服务属性,主要的设置选项如下: 属性 缺省值 说明 Changeabl ...

  7. PHP (sendmail / PHPMailer / ezcMailComposer)发送邮件

    一. 使用 PHP 内置的 mail() 函数 1. Windows 下 环境:WampServer2.5(Windows 10,Apache 2.4.9,MySQL 5.6.17,PHP 5.5.1 ...

  8. Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)

    背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...

  9. CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解

    CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9.8 ...

随机推荐

  1. 前端学PHP之正则表达式基础语法

    前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...

  2. JSP-表单元素示例

    <%@ page language="java" pageEncoding="UTF-8"%><%@ page import="ja ...

  3. [LeetCode] Is Subsequence 题解

    前言 这道题的实现方法有很多,包括dp,贪心算法,二分搜索,普通实现等等. 题目 Given a string s and a string t, check if s is subsequence ...

  4. Xpath定位总结

    先贴上练习xpath的地址:http://www.w3school.com.cn/example/xmle/books.xml 或则也可以使用百度进行练习 1.相对定位与绝对定位 //表示相对定位,对 ...

  5. 关于Response.redirect和Response.End出现线程中止异常的处理

    最近做了一个项目其中使用了多线程获取POST过来的数据后再Response回复,但由于是多线程,在Response.End()的时候报出了异常: 2013-10-20 10:05:31,606 res ...

  6. Dev使用技巧

    1.  dev调试 I.建工程,选择console application II.设置断点(F4),并按F5,(完成输入后,)其它功能如Next line可运作 2.  修改字体大小:Tools-&g ...

  7. 从零开始学习Vue.js,学习笔记

    一.为什么学习vue.js methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn ...

  8. Archlinux 中安装 LyX

    LyX 是 Latex 的 GUI 界面程序.使用效果类似 Office Word 和 wps.可直接生成 PDF 文件. 我使用的是 LyX + TexLive + XeTeX 组合.近期 Arch ...

  9. SQL-with as基本用法(源码DEMO)

    DROP TABLE #temp; with cr as ( SELECT At.SysNo AS AtSysNo , ( CASE WHEN At.Source = 1 THEN At.Vendor ...

  10. js手写图片查看器(图片的缩放、旋转、拖拽)

    在做一次代码编辑任务中,要查看图片器.在时间允许的条件下,放弃了已经封装好的图片jq插件,现在自己手写js实现图片的缩放.旋转.推拽功能! 具体代码如下: <!DOCTYPE html> ...