Sendmail Wamp Php

我花了整整一个上午在互联网上寻找这个解决scheme。 我已经在Windows 8.1上安装了wamp服务器,我试图用sendmail发送一些邮件( http://glob.com.au/sendmail/ )和我的Gmail帐户

当我configurationsendmail使用端口nº465我总是得到这个错误:套接字错误#10060Connection超时

如果我尝试使用端口nº587我错误日志上得到此行:连接closures优雅。 但没有电子邮件发送。

这是我的sendmail.ini文件

[sendmail] smtp_server=smtp.gmail.com ;I tried both: 587, 465 smtp_port=587 ; I tried: "blank, auto ssl, tls, none" smtp_ssl= error_logfile=error.log debug_logfile=debug.log auth_username=myaccoun@gmail.com auth_password=mypass hostname=localhost 

这是php.ini文件

 [mail function] smtp_port = 465 sendmail_path="C:\wamp\sendmail\sendmail.exe -t" mail.add_x_header = On 

ssl_module在apache上是活动的,php使用php_open_ssl和php_socket扩展名。

此外,我试图使用stunnel没有任何成功

编辑27/01/2014

我在sendmail.ini上设置了smtp_port = 465和smtp_ssl = ssl。 另外,我设置sendmail.exe必须作为Windows XP SP3程序运行。 这样做后,当我在Windows控制台上运行sendmail.exe,它正确地发送电子邮件。 但是,当wamp试图发送邮件时,我在sendmail的错误日志上得到这个错误:Socket Error#10060Connection timed out。

这是我用来testingsendmail的代码:

 <?php $email = "mymail@gmail.com"; $to = "mymail@gmail.com"; $subject = "Hi!"; $body = "Hi,How are you?"; $headers = 'From: ' .$email . "\r\n".'Reply-To: ' . $email. "\r\n".'X-Mailer: PHP/' . phpversion(); if (mail($to, $subject, $body, $headers)) echo("<p>Email successfully sent</p>"); else echo("<p>Email delivery failed</p>"); ?> 

最后我find了答案。

问题是sendmail必须以pipe理员身份运行。 这是帮助我解决问题的解决scheme。

  1. 右键点击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的configuration
  5. 作为Windows XP SP 3执行
  6. 作为pipe理员执行

并保存:D

在这废话2天失去:(

作为接受答案的延伸:

如果您在PHP中运行发送邮件function,可能会出现一个对话框,要求您以pipe理员身份运行“发送邮件”应用程序。 当“是”时,它会显示一个命令提示符对话框,并且什么都不会发生,并且您的页面将挂起,直到命令提示符closures。 邮件function甚至会返回“真”,但实际上没有消息发送。

要解决此问题,请按照接受的答案执行相同的操作,并以pipe理员身份运行服务器(或IDE):

1)右键单击程序(例如服务器,ide,命令提示符),然后单击“以pipe理员身份运行”

2)或右键单击程序>属性>兼容性>以pipe理员身份执行

例如,如果您在内置的服务器上使用PHP,请以admin身份运行命令提示符,并按正常方式启动服务器

 C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder 

当然,改变文件path以适合您的需求。

希望这可以帮助别人! 花了这么多年!

问题是sendmail必须以pipe理员身份运行。 这是帮助我解决问题的解决scheme。

  1. 右键点击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的configuration
  5. 作为Windows XP SP 3执行
  6. 作为pipe理员执行
  7. 如果你使用Gmail,你需要创build新的密码“你的应用程序特定的密码”

兼容性疑难解答

在Windows 10上,我发现唯一可行的方法是运行Compatibility Troubleshooter。

  1. 右键点击sendmail.exe
  2. 点击“属性”
  3. select兼容性选项卡。
  4. 点击“运行兼容性疑难解答”。
  5. 让Windows自动修复它。