从本地主机测试PHP的邮件功能

2022-08-30 16:22:50

我需要测试一个使用PHP的mail()
的函数 如何在不将脚本上传到服务器并在线测试的情况下执行此操作?
更重要的是,我正在开发完全没有互联网连接。
我在Mac OSX上运行来自XAMPP的本地主机。


答案 1

您不必在计算机上安装MTA来测试PHP的功能。在基于Unix的系统(Linux,*BSD,OS X等)上,您可以设置为类似.这会将电子邮件(包括标头)放在名为 的文件中。mail()sendmail_pathtee mail.out > /dev/nullmail.out

以下是它如何工作的示例:

daniel@daniel-laptop:~$ cat | php -d sendmail_path='tee mail.out > /dev/null'
<?php
mail('test@example.com', 'the subject', 'the body');
?>
daniel@daniel-laptop:~$ cat mail.out
To: test@example.com
Subject: the subject
X-PHP-Originating-Script: 1000:-


the body

您可以在文件中设置。如果要将电子邮件附加到文件而不是每次都覆盖,则可以使用 而不是仅使用 .sendmail_pathphp.initee -atee


答案 2

要测试从apache发送电子邮件,请执行以下操作

创建一个文件夹来存储电子邮件。

/home/username/Documents/TestEmails

向 apache 授予权限。从“文档”文件夹中,运行

sudo chgrp -R www-data TestEmails

修改php.ini文件,我的位于

/etc/php5/apache2/php.ini

设置sendmail_path

sendmail_path ='cat > /home/username/Documents/TestEmails/mail.txt'

快速重启2

sudo service apache2 restart

推荐