![](/img/trans.png)
[英]Using Sendmail + WAMP, but PHP errors indicate wrong SMTP server
[英]Sendmail Wamp Php
我整个上午都在网上搜索这个,试图找到解决方案。 我在Windows 8.1上安装了wamp服务器,我正在尝试用sendmail( http://glob.com.au/sendmail/ )和我的gmail帐户发送一些邮件
当我配置sendmail使用端口号465时,我总是收到此错误:套接字错误#10060连接超时
如果我尝试使用端口号587我在错误日志上得到这一行:连接正常关闭。 但是没有发送电子邮件。
这是我的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 whitout取得任何成功
编辑27/01/2014
我在sendmail.ini上设置了smtp_port = 465和smtp_ssl = ssl。 另外,我设置sendmail.exe必须作为Windows XP SP3程序运行。 这样做之后,当我在Windows控制台上运行sendmail.exe时,它会正确发送电子邮件。 但是,当wamp尝试发送邮件时,我在sendmail的错误日志中收到此错误:套接字错误#10060Connection超时。
这是我用来测试sendmail的代码:
<?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>");
?>
最后我找到了答案。
问题是sendmail必须以管理员身份运行。 这是帮助任何人解决我的情况的解决方案。
并保存:D
在这个废话中迷失了2天:(
作为接受答案的延伸:
如果您在PHP中运行发送邮件功能,可能会出现一个对话框,要求您以管理员身份运行“发送邮件”应用程序。 点击“是”后,它将显示一个命令提示符对话框,不会发生任何事情,您的页面将一直挂起,直到命令提示符关闭。 邮件功能甚至会返回“True”,但实际上没有发送任何消息。
要解决此问题,请执行与接受的答案相同的说明,并通过以下任一方式运行服务器(或IDE)作为管理员:
1)右键单击程序(例如server,ide,命令提示符)并单击“Run as Administer”
2)或右键单击程序>属性>兼容性>勾选执行为admin
例如,如果您在构建的服务器中使用PHP,请以管理员身份运行命令提示符并正常启动服务器
C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder
当然,更改文件路径以满足您的需求。
希望这有助于某人! 花了很多年!
问题是sendmail必须以管理员身份运行。 这是帮助任何人解决我的情况的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.