PHP mail()函数已停止工作

时间:2012-04-09 23:04:37

标签: php email sendmail mailer

我一直在开发一个带有MAMP解决方案堆栈(v2.0.5)的Web应用程序,其中包括:

  • Mac OS X(v10.7.3)
  • Apache v2.2.21
  • MySQL v5.5.9
  • PHP v5.3.6

我一直在使用PHP mail()函数向新注册的用户帐户发送激活URL:

$body = "Thank you for registering. To active your account, please click on this link:\n\n";
$body .= BASE_URL . 'activate.php?x=' . urlencode($e) . "&y=$a" . "&z=$bs";
mail($trimmed['email'], 'Registration Confirmation', $body, 'From: admin@tester.com');

然而,似乎过了一段时间......这已经停止了,现在我没有收到任何这些消息给我的测试用户帐户。

我的php.ini文件位于:/Applications/MAMP/bin/php/php5.3.6/conf/php.ini

使用默认设置:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

直到最近才开始工作,现在已经失败了。我并没有故意改变任何可能导致此操作停止的设置。

经过大量谷歌搜索并阅读它似乎你必须设置你的SMTP服务器,以便从你的本地主机发送电子邮件到另一个电子邮件地址,它可以工作,但我非常肯定它曾经工作,我收到的电子邮件......老实说!

我希望有人可以提供帮助。非常感谢。

更新完毕解决: 基本上排序了它。开始尝试使用PEAR和Mail插件,但发现它很糟糕。使用外部SMTP服务器和PHPMailer结束得更好。

实用信息: http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html https://orangsetya.wordpress.com/2007/09/12/send-mail-using-smtp-authentication-phpmailer-script

2 个答案:

答案 0 :(得分:2)

使用mail命令创建一个新脚本,并将值硬编码为字符串,以查看您是否收到了电子邮件。还要检查您的操作系统是否有任何更新对您的apache / php安装进行了任何修改。

尝试这样一个简单的脚本:

<?php
    mail('youremail@example.com', 'My Subject', 'My Message');
?>

答案 1 :(得分:1)

基本上排序了它。开始尝试使用PEAR和Mail插件,但发现它很糟糕。使用外部SMTP服务器和PHPMailer结束得更好。

实用信息:http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html https://orangsetya.wordpress.com/2007/09/12/send-mail-using-smtp-authentication-phpmailer-script

干杯。