Dan*_*erg 52
您不必在计算机上安装MTA来测试PHP的mail()功能.在基于Unix的系统(Linux,*BSD,OS X等)上,你可以设置sendmail_path类似的东西tee mail.out > /dev/null.这会将电子邮件(包括标题)放在一个名为的文件中mail.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
Run Code Online (Sandbox Code Playgroud)
您可以sendmail_path在php.ini文件中设置.如果您希望每次都将电子邮件附加到文件而不是覆盖,则可以使用tee -a而不是仅使用tee.
要测试从apache发送电子邮件,请执行以下操作
创建一个文件夹来存储电子邮件.
/home/username/Documents/TestEmails
Run Code Online (Sandbox Code Playgroud)
授予apache权限.从Documents文件夹中运行
sudo chgrp -R www-data TestEmails
Run Code Online (Sandbox Code Playgroud)
修改php.ini文件,我的位于
/etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)
设置sendmail_path
sendmail_path ='cat > /home/username/Documents/TestEmails/mail.txt'
Run Code Online (Sandbox Code Playgroud)
重启apace2
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
在本地计算机中设置 pop3 服务器。许多都是免费提供的。并使用 sendmail 在您的本地域内发送邮件。
默认情况下,Linux 中不需要设置 sendmail 路径。至少我从来不需要它。只需使用 mail() 函数并点击本地域上的邮件