问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php中mail函数发送邮件失败的解决方法

发布网友 发布时间:2022-04-06 03:52

我来回答

2个回答

懂视网 时间:2022-04-06 08:14

php发送邮件收不到的解决办法:首先执行命令“sudo apt-get install sendmail”进行安装;然后在终端输入命令“ps aux |grep sendmail”;接着生成新的配置文件;最后在终端测试一下配置是否成功即可。

推荐:《PHP视频教程》

解决php mail发送邮件收不到的问题

我想很多人想用php mail发送邮件来做一些验证,但是当把脚本写好了,用法都对但是邮件怎么也收不到这些问题吧 。在这儿我给大家找了一种方法,非常简单实用

博主的开发环境是ubuntu17.04下搭建的LNMP平台:

为什么你的邮件收不到呢 ,是应为你没有进行一些相关的配置:现在你知道了 那就按着我下面的步骤来吧

首先 我们需要安装一些软件:

ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmail先要安装两个包

sudo apt-get install sendmail
sudo apt-get install sendmail-cf

注意:

Ubuntu下使用最常用的mail功能,需要安装mailutils,

安装命令:sudo apt-get install mailutils

使用带附件的功能,则还需要安装sharutils,

安装命令:sudo apt-get install sharutils;(yum install sharutils )

终端输入命令:ps aux |grep sendmail

输出如下:

root 20978 0.0 0.3 8300 1940 ? Ss 06:34 0:00 sendmail: MTA: accepting connections
root 21711 0.0 0.1 3008 776 pts/0 S+ 06:51 0:00 grep sendmail

说明sendmail 已经安装成功并启动了

安装好了之后我们就要进行一些相关配置

sendmail 默认只会为本机用户发送邮件,只有把它扩展到整个Internet,才会成为真正的邮件服务器。

打开sendmail的配置宏文件:/etc/mail/sendmail.mc

vi /etc/mail/sendmail.mc

找到如下行:

代码

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1′)dnl

修改Addr=0.0.0.0 ,表明可以连接到任何服务器。

生成新的配置文件:

代码

#cd /etc/mail
#mv sendmail.cf sendmail.cf~ //做一个备份
#m4 sendmail.mc > sendmail.cf //>的左右有空格,提示错误没有安装sendmail-cf
$ sudo vim /etc/php5/apache2/php.ini

找到 “;sendmail_path”这句,去掉注释的”;”,然后添加sendmail启动目录

sendmail_path = /usr/sbin/sendmail -t -i

到这里理论上就可以发邮件了。

最后可以在终端测试一下配置是否成功:

终端常用发送邮件方式如下:

1.如何写一般的邮件: mail test@126.com Cc 编辑抄送对象,Subject:邮件主题,输入回车,邮件正文后,按Ctrl-D结束

2.快速发送方式: echo “邮件正文” | mail -s 邮件主题 test@126.com

3.以文件内容作为邮件正文来发送: mail -s test test@126.com < test.txt

4.发送带附件的邮件: uuencode 附件名称 附件显示名称 | mail -s 邮件主题 发送地址

例如: uuencode test.txt test.txt | mail -s Test test@126.com

在终端测试成功后,说明你已经可以使用mail这个函数发送邮件了 。

热心网友 时间:2022-04-06 05:22

本文实例讲述了php中mail函数发送邮件失败的解决方法。分享给大家供大家参考。具体分析如下:
php中mail函数是一个自带的发邮件的函数,但是如果你真的要使用mail函数来发邮件那必须是要给你系统安装sendmail组件才可以,下面我就碰到mail发送不了邮件的问题,下面一起来看看解决办法吧.
之前的那台服务器转移过来后,发现网站用mail()发送邮件发不了,但是发现sendmail明明已经安装,如果没有安装sendmail可以执行,代码如下:
复制代码
代码如下:yum
install
sendmail
对了,主机名要设置一个域名格式的,例如:jb51.net,不然重启sendmail的时候会特别久才启动起来,否则要等很久,代码如下:
复制代码
代码如下:hostname
jb51.net
接着看看sendmail是否正常运行,代码如下:
复制代码
代码如下:service
sendmail
status
如果没有运行可以启动,status换成start,紧接着,编辑php.ini,可以在web环境下创建一个phpinfo,因为我用的是lnmp.
复制代码
代码如下:vi
/usr/local/php/etc/php.ini
再查找:;sendmail_path
=,按i编辑,替换为:
复制代码
代码如下:sendmail_path
=
/usr/sbin/sendmail
-t
-i
我的系统默认的是:复制代码
代码如下:sendmail_path
=
/usr/sbin/sendmail
-t
-i
-f
这个-f
看来是让mail函数停用了,去掉-f后mail函数工作恢复正常,紧接着,重启PHP进程,一般是:service
php
restart
LNMP是:service
php-fpm
restart,Apache下可以:service
httpd
restart
给大家分享个php脚本测试代码,代码如下:
复制代码
代码如下:<?php
$send
=
mail('yourEmail@lisizhang.com',
'邮件标题',
'测试邮件内容,如果收到此邮件,表示mail函数成功启用!');
if($send){
echo
'true';
}else{
echo
'false';
}
?>
如果返回结果false说明邮件发送失败,如果返回true表示邮件发送成功.
希望本文所述对大家的php程序设计有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么鉴别匡威真假鉴别鉴别匡威真假的方法与技巧 洛阳小碗汤怎么做 酥肉丸子汤如何烹饪简单而又不失美味? 直通车产出比多少不亏?产出比低怎么调整? 淘宝直通车投产比多少才是盈利?怎么提升? 车打不着拧钥匙没反应 车打火的钥匙拧不动 微信关闭时后台还在图标上还有个小锁什么意思 坦克世界闪击战电脑需求配置玩坦克世界电脑配置要达到什么标准_百度... 坦克世界对电脑配置要求高不高玩坦克世界电脑需要什么配置要求 坦克世界对电脑的配置要求是多少坦克世界配置要求 php 发送邮件问题,不知道为什么收不到 linux下用php发送email什么错也没有,但是没收到邮件 phpmailer发送邮件,对方接收不到 linux系统下PHP邮件发送成功但没收到邮件 PHP发送邮件显示成功,但邮箱却没有,是怎么回事? 表单用php提交到邮箱,但邮箱收不到(以前可以收到),请问会是什么原因? PHP数组的几种赋值方法 php如何给数组赋值? php 如何让一位数的时间,前边不加0 PHP 自动生成固定位数的数字列表,求助,不知道怎么修改。 javascript 中始终效果不够10位补一个0的效果怎么实现 php怎么把mysql里面的两位数字前面补一个0变成三位显示,如图 PHP里面000001实现++,然后保留前面的0 php mysql 数据按月统计 没有的月份怎样补0 php中几日不足两位补零用什么表示例如2012-01-9把9补零变成09的时间格式是什么 php 数组里的数字前补0,应该如果写? PHP几种数字左侧自动补0 php i++ 怎么echo 2位数 不足补0 比如01 02 03 PHP怎样在不足两位数前加 0 补足两位数 PHP数字字符串左侧补0,字符串填充和自动补齐的几种方法 php发送邮件功能类文件帮我测试下,提示成功,但没有收到邮件 php页面表单中INPUT type=text类邮件都收不到 PHP服务器发送不了SMTP邮件怎么办 php 程序问题发送不了邮件 阿里云服务器php探针邮件发送不出来 php 发送成功了为什么收不到邮件 php发送邮件代码要最新的网上试了很多都不成功 PHP 用mail发邮件始终不成功.该怎么解决 PHP发邮件异常! php网站,如何不显示默认首页?web服务器是apache php使用include调用另一个文件中的变量,如何才能不显示另一个页面中的内容? 如何去除网站域名后的index.html或index.asp或index.php让其不显示 PHP程序,如果设置一段代码输入出的结果不在界面显示,只在后台显示? phpwed 设置友情链接后管理中有页面不显示不显示 php页面空白,不显示任何东西 在PHP代码中..如何添加一个隐藏页面!! thinkphp 后台怎么配置成不开启。让别人输入网址只能显示前台页面,而不能调到后台登陆页面。 php页面显示问题 php登录之后如何根据帐号不同而显示不同的页面呢 php 的页面显示不正常,这是怎么回事?