Sendmail Wamp Php

2022-08-30 18:42:33

我花了一整个上午的时间在互联网上搜索这个,试图找到一个关于这个问题的解决方案。我已经在Windows 8.1上安装了wamp服务器,并且我正在尝试使用发送邮件(http://glob.com.au/sendmail/)和我的gmail帐户发送一些邮件

当我将发送邮件配置为使用端口nº 465时,我总是收到此错误:套接字错误#10060连接超时

如果我尝试使用端口Nº 587,我会在错误日志上得到这一行:连接正常关闭。但不会发送电子邮件。

这是我的发送邮件.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 上设置了 smtp_port = 465 和 smtp_ssl=ssl.ini。另外,我设置了发送邮件.exe必须作为Windows XP SP3程序运行。完成此操作后,当我在Windows控制台上运行sendmail.exe时,它会正确发送电子邮件。但是,当wamp尝试发送邮件时,我在sendmail的错误日志上收到此错误:套接字错误#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>");
?>

答案 1

终于我找到了答案。

问题是 sendmail 必须以管理员身份运行。这是帮助任何人解决我情况的解决方案。

  1. 右键单击发送邮件.exe
  2. 性能
  3. 兼容性
  4. 更改所有用户的配置
  5. 作为 Windows XP SP 3 执行
  6. 作为管理员执行

节省:D

2天迷失在这个无稽之谈:(


答案 2

作为已接受答案的扩展:

如果您在PHP中运行发送邮件功能,则可能会出现一个对话框,要求您以管理员身份运行“发送邮件”应用程序。在点击“是”时,它将显示命令提示符对话框,并且不会发生任何事情,并且您的页面将挂起,直到命令提示符关闭。邮件功能甚至会返回“True”,但实际上没有发送任何消息。

要解决此问题,请执行与接受的答案相同的说明,并通过以下任一方式以管理员身份运行服务器(或 IDE):

1)右键单击程序(例如服务器,ide,命令提示符),然后单击“运行方式管理”

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

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

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

当然,更改文件路径以满足您的需求。

希望这对某人有所帮助!!!花了很长时间!


推荐