ch04_wamp+PHP下调用mail()函数

旧街凉风 提交于 2020-01-16 00:52:45


学习ch04过程中使用mail()函数时遇到以下问题,提示需要配置php.ini文件,才能使用mail()函数发送邮件。
在这里插入图片描述

在这里插入图片描述

安装sendmail

如上所述,wamp不能单数使用mail()函数,需要安装sendmail。
sendmail官网

在这里插入图片描述
为了使用方便,本人把sendmail压缩包解压到的Wamp文件夹下(D:\Study\Wamp\Sendmail)

配置php.ini

文件路径:D:\Study\Wamp\bin\apache\apache2.4.41\bin\php.ini

一定要注意选择apache文件夹中的php.ini文件,本人开始选择的是php下的php.ini文件,修改后不起作用。

以记事本的形式打开文件进行编辑。

php.ini文件一共需要修改四处地方,按CTRL+F键查找关键字mail,找到[mail function]处,进行修改

[mail function]

SMTP = smtp.qq.com  

smtp_port = 25

sendmail_from =yourmail@qq.com

sendmail_path ="D:\Study\Wamp\Sendmail\sendmail.exe -t"

注意事项:

1.本人在此使用的是QQ邮箱,可以根据需要选择自己用的邮箱,修改中间参数即可,例如163邮箱:smtp.163.com

2.sendmail_path 是sendmail的存储路径

3.sendmail_from是你的服务器调用发邮件的账号。

启动SMTP服务

在上一步中选择的yourmail@qq.com账号中开启SMTP服务后,你的服务器才可以调用你的账号发送邮件

1.登录邮箱账号(在此以QQ邮箱为例)

2.设置 --> 账户 --> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述

3.选择IMAP/SMTP服务,点击开启。
在这里插入图片描述

根据提示发送短信,点击‘我已发送’,确认后会返回你的邮箱的授权码,复制下来,在配置sendmail.ini中使用

配置sendmail.ini

文件路径:D:\Study\Wamp\Sendmail

以记事本的形式打开文件进行编辑。

smtp_server=smtp.qq.com
smtp_port=25
smtp_ssl=auto

error_logfile=error.log
debug_logfile=debug.log

auth_username='yourmail@qq.com'
auth_password=授权码

force_sender=yourmail@qq.com

注意事项:

1.修改服务器,同php.ini文件中相同:smtp.qq.com

2.错误日志,名称不需要修改,把前面的分号去掉。(分号是注释的意思)

3.auth_username 和 force_sender相同,都是你的邮箱账号,和配置文件php.ini中填写相同的账号!!!

4.auth_password就是开启SMTP服务中复制的授权码!!!(不是邮箱账号密码)

测试

上述操作完成后,重启WAMP后,再进行测试。

#test_mail.php
<?php
    $flag = mail('yourtest_recieve_mail@qq.com','TEST','test the mail() function');
    if($flag){
        echo "邮件发送成功";
    }else{
        echo "邮件发送失败";
    }
?>

1.在上述代码文件中应用mail()函数,mail()函数的三个参数:第一个参数是接收邮件的账号,第二个参数是邮件标题,第三个参数是邮件内容。该函数还有多个参数,可根据需求自己添加,在这儿因为仅用于测试,所以只用了基本参数。

2.按F5键调试脚本
在这里插入图片描述

3.打开接收邮件的邮箱,收到邮件
在这里插入图片描述

综上所述,配置完成,现在可以在php中使用mail()函数了(●’◡’●)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!