繁体   English   中英

Sendmail Wamp Php

[英]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必须以管理员身份运行。 这是帮助任何人解决我的情况的解决方案。

  1. 右键单击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的配置
  5. 作为Windows XP SP 3执行
  6. 以管理员身份执行

并保存: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必须以管理员身份运行。 这是帮助任何人解决我的情况的解决方案。

  1. 右键单击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的配置
  5. 作为Windows XP SP 3执行
  6. 以管理员身份执行
  7. 如果您使用Gmail,则需要创建新密码“您的应用程序专用密码”

兼容性问题排查工具

在Windows 10上,我发现唯一有效的方法是运行兼容性故障排除程序。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM