Linux系统设置在PHP中用sendmail发送邮件
思韵闪耀
2013-03-19
0
     前几天作项目遇到这样的一个问题,当某一个结点下有新的文章发表的时候,就要通过邮件的形式通知该结点下的所有用户。
     这就需要用到邮件发送的功能。

     因为项目是php语言做的,所以最简单的方法就是使用php自带的函数mail。如果是java语言的项目,那么邮件发送函数要自己写一个类。php自带有Mail这样的一个类,使用mail函数其实很简单,手册中都有详细的说明,可是具体,详细,复杂的使用的时候难免就要遇到很多问题了。
     首先就是在编译php的时候,要有一个编译选项--enable-mail,否则mail函数无法使用。

      第二个遇到的问题就是:编写mail脚本的时候,将此脚本通过命令行运行,或者shell运行都是没有问题的。可是部署到项目中,如果想通过浏览器访问此脚本,那么mail函数总是返回false。解决此问题的办法是修改php的配置文件php.ini,找到
        sendmail_path = /bin/sendmail -t
这样的一行,如果以前没有修改过,那么这一行可能是被注释掉了,把后面的路径改为自己机器的sendmail执行文件的路径,最重要的一点就是后面的参数-t,看到有些文档,或者博客说后面可以不用参数,我怀疑不用也是可以的,但是用了也是可以的,我的项目在发送邮件之前设置了邮件的很多格式,所以有些参数也就不用添加了,但是没有传参数的mail函数在被调用的时候,配置文件中的参数就显现了他的作用。
     最重要的就是说明这儿在配置文件中是sendmail可以设置参数的。

      使用linux,具体说使用sendmail传参数的方式有很多,要配合的当,配合不当简单的问题是覆盖问题,复杂的就是发送失败之类的问题。
    像这样的问题用脚本可以执行,但是通过浏览器不能执行的问题还是首次遇到,自己总结的一点经验希望对遇到同样类型问题的朋友有用。


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

Linux系统挂载未分配硬...
先查看未挂载之前的磁盘使用情况发现磁盘使用率已经达到了96%,迫切...
2025-02-22
Linux lsblk 命...
简介Linux 中的 lsblk 命令,全称叫做:list blo...
2025-02-22
linux内核5和6区别
Linux内核5.x和6.x版本之间有显著的区别,这些区别主要体现...
2024-04-29
docker-compos...
1.Compose介绍 DockerCompose是一个用来定义和...
2024-04-26
Linux中的防火墙(Ne...
NetfilterNetfilter是Linux 2.4内核引入的...
2024-03-15
firewall-cmd ...
firewalld的简要说明:firewalld 、firewal...
2024-03-15

热门资讯

Discus X论坛配置sen... Discuz x2.5 后台邮件设置方法其实和X2/x1.5基本一样,但很多同学都不注意一些细节,比...
redhat Linux系统配... 1 .检查Send Mail 的安装包 [root@sql root]# rpm -qa | gre...
使用Sendmail的反垃圾邮... 在最近几年,无处不在的垃圾邮件已使得所有邮件箱不堪重负,不断地需要工具以抗击这一无穷尽的垃圾邮件流。...