我需要使用PHP的邮件来测试一些脚本。 我希望能够最终获得本地这方面的工作。 我使用的甲基苯丙胺。 有没有办法做到这一点,而无需安装任何第三方软件?
我已经做了这方面的一些搜索,但没有发现任何吸引力。
谢谢
我需要使用PHP的邮件来测试一些脚本。 我希望能够最终获得本地这方面的工作。 我使用的甲基苯丙胺。 有没有办法做到这一点,而无需安装任何第三方软件?
我已经做了这方面的一些搜索,但没有发现任何吸引力。
谢谢
你特别想测试邮件的发送,或者是你测试代码的休息吗?
在前者的情况下,你需要配置:
SMTP = smtp.example.com
smtp_port = 25
sendmail_from = me@example.com
在php.ini文件(检查它是用phpinfo()函数),代入相应的值。
为了测试比发送邮件的过程中其他的代码,那么我建议你创建2包括文件:
<?php
// for live usage/mail send testing
function ori_mail()
{
return call_user_func_array('mail',func_get_args());
}
并测试其他代码
function ori_mail() { file_put_contents('debug_mail_scripts.txt' ,date('r') . ':' . var_export(func_get_args(), true) , FILE_APPEND); }
并包括一个有关你的测试。
注意与SMTP服务器测试集成,代码的测试deliverbility是相当复杂的,但应该测试您的PHP独立完成。
C。
您可能要考虑斯威夫特梅勒库
http://swiftmailer.org/
这样,在从更可靠的PHP代码做的电子邮件。 你甚至可以将您的邮件脚本到一个真正的SMTP服务。 这可以消除一大把的问题,你可以运行从本地转移到生产环境时进入。
使用快捷邮件是用一个单一的包括你的PHP脚本的顶部,并编写代码块来发送一个简单的消息一样简单。 而且它是完全面向对象的。
几个月前,我有我的,而本地机器其中涉及自动发送电子邮件通知的应用程序开发了类似的问题。 我已经失去了相当长的一段时间OSX安装Sendmail和最终我无法得到它的工作的权利..
我的方法是使用PEAR 邮件临时替换为PHP内建的邮件功能。 基本上你可以定义一个名为发送邮件功能(参见下面的代码),一旦您部署在服务器上的应用程序,你可以可能与调用邮件代替调用该函数()。
<?php
require_once 'Mail.php';
function send_mail($recipient,$subject,$body){
$host = "yourmailserver.net";
$username = "you@yourmailserver.net";
$password = "password";
$port = 25;
$headers = array ('From' => "Your agent <noreply@yoursite.net>",
'To' => $recipient,
'Subject' => $subject
);
$smtp = Mail::factory(
'smtp',
array ('host' => $host,
'auth' => true,
'port' => $port,
'username' => $username,
'password' => $password)
);
$smtp->send($recipient, $headers, $body);
}
?>
我做的是我使用的PHPMailer类 (警告:可怕的网站),并指定在其帐户中有一个真正的SMTP服务器。 所以,我不使用电子邮件(),但使用SMTP。 这样一来,不要紧,我到底对我的本地服务器上或在真实服务器上。 但是,你需要的是SMTP邮件服务器工作SMTP访问。 最好的将是实际使用的生产邮件服务器(将通过您的应用程序时,它会现场使用的一个)。 通过这种方式,你不会有最后一分钟的惊喜,当你发现的邮件服务器搅乱回复到现场和小之类的东西。
您可以使用您的Gmail帐户,并通过Gmail的SMTP服务器来发送邮件的测试。
您可以使用的PHPMailer类( http://phpmailer.worxware.com/ )来做到这一点。 有一个基本的Gmail例中的例子/文件夹,当你下载这个类。
我认为最好的办法是写所有消息记录到文件。 所以,你只需要做出自己的sendmail。
添加到httpd.conf文件中这个字符串:
php_admin_value sendmail_path
“/Applications/MAMP/somefolder/mysendmail.sh”
在文件mysendmail.sh添加以下内容:
而读线做回声“$线” >> ../mail_log.txt DONE
回声 “-------------下一个邮件----------------” >> ../mail_log.txt
退出0
不要忘记设置privilegies权限:chmod 755 mysendmail.sh