首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sendmail Wamp Php

Sendmail Wamp Php
EN

Stack Overflow用户
提问于 2014-01-24 16:39:53
回答 4查看 52.6K关注 0票数 22

整个上午我都在网上搜索这个,试图找到一个解决这个问题的方法。我在Windows8.1上安装了wamp服务器,我试图用sendmail (http://glob.com.au/sendmail/)和gmail帐户发送一些邮件

当我将sendmail配置为使用第465端口时,我总是会得到以下错误:套接字错误#10060连接超时

如果我尝试使用端口编号587,就会在错误日志上得到这一行:连接优雅地关闭。但没有发邮件。

这是我的sendmail.ini文件

代码语言:javascript
复制
[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文件

代码语言:javascript
复制
[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扩展。

此外,我还试图用特技美白任何成功。

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的代码:

代码语言:javascript
复制
<?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>");
?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-27 12:04:25

最后我找到了答案。

问题是sendmail必须作为管理员运行。这是帮助任何一个人解决我的问题的办法。

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

和节省:D

在这个胡言乱语中浪费了2天:(

票数 68
EN

Stack Overflow用户

发布于 2014-09-02 19:36:32

作为可接受答案的扩展:

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

要解决此问题,请执行与接受的答案相同的指令,并以管理员的身份运行服务器(或IDE),方法之一是:

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

2)或右键单击“program> properties> compatiblity>”执行管理。

例如,如果您在构建的服务器中使用PHP,请以admin方式运行命令提示符,然后使用

代码语言:javascript
复制
C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder

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

希望这能帮到别人!花了好长时间在这上面!

票数 8
EN

Stack Overflow用户

发布于 2014-05-26 05:10:55

问题是sendmail必须作为管理员运行。这是帮助任何一个人解决我的问题的办法。

  1. 右键单击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的配置
  5. 作为Windows 3执行
  6. 作为管理员执行
  7. 如果您使用gmail,则需要创建新密码“您的应用程序专用密码”。
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21337859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档