整个上午我都在网上搜索这个,试图找到一个解决这个问题的方法。我在Windows8.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 = Onssl_module在apache上是活动的,php使用php_open_ssl和php_socket扩展。
此外,我还试图用特技美白任何成功。
2014年1月27日编辑
我在smtp_port = 465上设置了smtp_ssl=ssl,在sendmail.ini上设置了smtp_ssl=ssl。此外,我还设置sendmail.exe必须作为Windows SP3程序运行。在此之后,当我在windows控制台上运行sendmail.exe时,它会正确地发送电子邮件。然而,当wamp试图发送邮件时,我会在sendmail的错误日志中得到这个错误。:Socket错误#10060连接超时。
这是我用来测试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>");
?>发布于 2014-01-27 12:04:25
最后我找到了答案。
问题是sendmail必须作为管理员运行。这是帮助任何一个人解决我的问题的办法。
和节省:D
在这个胡言乱语中浪费了2天:(
发布于 2014-09-02 19:36:32
作为可接受答案的扩展:
如果您正在PHP中运行发送邮件功能,可能会出现一个对话框,要求您以管理员的身份运行“发送邮件”应用程序。在剪切“是”时,它将显示一个命令提示符对话框,什么都不会发生,您的页面将挂起,直到命令提示符关闭。邮件函数甚至会返回"True",但实际上没有发送任何消息。
要解决此问题,请执行与接受的答案相同的指令,并以管理员的身份运行服务器(或IDE),方法之一是:
1)右键单击程序(例如,服务器、ide、命令提示符),然后单击“以管理方式运行”。
2)或右键单击“program> properties> compatiblity>”执行管理。
例如,如果您在构建的服务器中使用PHP,请以admin方式运行命令提示符,然后使用
C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder当然,更改文件路径以满足您的需要。
希望这能帮到别人!花了好长时间在这上面!
发布于 2014-05-26 05:10:55
问题是sendmail必须作为管理员运行。这是帮助任何一个人解决我的问题的办法。
https://stackoverflow.com/questions/21337859
复制相似问题