0

我无法让 PHP 邮件发送电子邮件...

所有这些只是为了在我的本地主机设置中测试我的 php 邮件功能。XAMPP-apache,mercury,mysql,windowXP

我很确定我正确安装了mercury 32,如果我用它向root@localhost.com 发送电子邮件,它工作正常,我看到它已发送,并在我的雷鸟收件箱中进行了设置。

php.ini 是我有点困惑的地方

[mail function]
;---- I left this as is(out), since I AM using Mercury
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
;---- I created a root user in mercury
sendmail_from = root@localhost

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesD:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.  

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:\xampp\mailoutput folder
;---- I left this as is(in), but I feel it should be commented out, but if I take out i get error in pho mail() code
sendmail_path = "D:\xampp\mailtodisk\mailtodisk.exe"

邮件()的PHP代码;

   .....
   $mailSubject   = "Hello there!!!";
   $mailFrom      = "From: me123@gamil.com" . "\r\n";
   $mailTo        = "root@localhost.com";

   if (mail($mailTo, $mailSubject, $mailMessage, $mailFrom)){
      echo("Message successfully sent! $mailTo");
   } 
   else {
      echo("Message delivery failed...");
   }

邮件被发送,但发送到哪里?我永远找不到它

一些图片: 测试 Mercury。转到“文件>发送邮件”以获取此屏幕并创建一封电子邮件进行测试 测试水星。 去了

客户电子邮件收件箱-上述图像/测试的结果 客户电子邮件收件箱-上述图像/测试的结果

浏览器中的脚本输出 屏幕输出

4

1 回答 1

0

(第一:对不起我的英语不好)为了解决这个问题,我像这样配置了 php.ini 和 sendmail.ini:

php.ini:

[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
 SMTP = 127.0.0.1
 smtp_port = 25
 sendmail_from = postmaster@localhost

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.  
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path = "C:\xampp\sendmail\sendmail.exe\ -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

还有 sendmail.ini

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

;smtp_server=mail.mydomain.com

smtp_server=localhost

记得在 PHP.ini 上评论 sendmail_path 现在它对我有用 :)

于 2013-08-15T05:56:21.490 回答