如何显示或保存电子邮件而不是实际在localhost上发送它们?

Cod*_*ter 1 php email wamp localhost

我正在开发一个php项目,其中所有电子邮件都是通过mail()函数发送的.这是准备和测试这些电子邮件的一个问题,因为mail()函数在localhost上失败,我应该不断重写我的代码以在发送之前打印出电子邮件,检查它并假设在服务器上它将被发送好.

有办法以某种方式管理这种情况吗?如果有一种方法可以将消息保存在硬盘上,或者只将它们发送到一个特定的电子邮件地址,而不是真正的收件人,没有或略微修改代码,我将非常高兴.一些有用的软件或建议非常受欢迎.

谢谢!

PS在localhost上我使用WAMP包作为网络服务器.

Cod*_*ter 7

这是我发现解决这个问题的解决方案.1. 在wamp目录中的某处创建sendmail.php文件,例如d:\ wamp\apps\sendmail.php.这是它的来源:

/* Path where emails will be stored */
define('DST', 'd:/wamp/tmp/sendmail/');
/* Extract the message from the stdin */
$message = '';
while(($line = fgets(STDIN)) !== false) {
    $message .= $line;
}
/* Save message to file */
file_put_contents(DST.date('Y-m-d_H-i-s_').md5($message).'.eml', $message);
Run Code Online (Sandbox Code Playgroud)

2.取消注释并编辑php.ini中sendmail_path参数:

sendmail_path = "D:\wamp\bin\php\php5.3.5\php.exe D:\wamp\apps\sendmail.php"
Run Code Online (Sandbox Code Playgroud)

通过mail()函数发送的所有消息都将被捕获并存储在指定的目录中.


Lau*_*nce 7

http://www.toolheap.com/test-mail-server-tool/

用于Windows的测试邮件服务器工具非常棒!每当您在本地主机上发送电子邮件时,它只会在您最喜爱的电子邮件阅读器(即外观,邮箱等)中弹出该电子邮件

我专门用它来测试WAMP上的所有网络应用程序!

无需更改服务器 - 只需下载并安装 - 然后发送电子邮件并查看其运行情况.

哦 - 它是免费的!