我们正在开始构建一个Web应用程序。我的同事正在开发linux,我正在通过运行windows xp的WAMP堆栈运行。我们正在使用Zend。
当我们提交表单并使用Zend电子邮件发送电子邮件时,电子邮件将发送,然后我会得到一个空白屏幕,在linux机器上,该应用程序将继续正常。
所以我写了我自己的小脚本,mail.php,它使用phpmailer - 完全相同的事情发生了,电子邮件发送,然后是空白屏幕。所以我们有:
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}
因此没有报告错误,电子邮件发送,但“已发送消息”从未打印到屏幕上(或其他任何内容,也是正常的HTML)。
我不是很技术,如果有明显的调试步骤,请道歉。是否有一些我错过的Windows php配置特有的东西?
这是一个带身份验证的异地SMTP服务器。
答案 0 :(得分:1)
听起来你得到了一个错误,但却没有看到它。确保在代码中的某处
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
并检查您的apache日志以查找500个错误。
答案 1 :(得分:1)
PHP有自己的错误日志,如有疑问请查看。您应该能够通过运行
找到它<?php
phpinfo();
?>
它应该位于 PHP Core 部分 - 如果它是空白的,请编辑您的php.ini文件并打开 log_errors 并指定您希望文件的位置
错误我无法显示我发现使用它。
<强>更新强>
根据文档的说法,Zend_Mail实际上是PHP的mail()函数的包装器,并且似乎有些挖掘:http://framework.zend.com/manual/en/zend.mail.html
考虑到这一点,PHP手册中有关于PHP的mail()函数的一些信息,您将要查看有关SendMail http://www.php.net/manual/en/ref.mail.php页面上的第一条评论(截至撰写本文时)关于将WAMP服务器配置为* nix服务器的所有细节 - 至少就mail()操作而言; - )
答案 2 :(得分:1)
我在一个Windows框(我的开发机器)上成功使用phpmailer。我能看到设置代码吗?我做了类似下面的事情。有一件事是你需要确保在php中安装openssl模块,如果你使用的是ssl。看看下面的内容。确保您的SMTPDebug标志设置为具有可以使用的输出。
<?php
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "blah.com";
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "mail.blah.com";
$mail->Port = 465;
$mail->Username = "noreply@blah.com";
$mail->Password = "smtppass";
$mail->SetFrom('noreply@blah.com', 'Blah Name');
$mail->AddReplyTo("noreply@blah.com", "Blah Name");
$mail->Sender = "noreply@blah.com"
?>
答案 3 :(得分:0)
感谢大家的帮助。