Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sendmail Wamp Php_Php_Email_Wamp_Sendmail.exe - Fatal编程技术网

Sendmail Wamp Php

Sendmail Wamp Php,php,email,wamp,sendmail.exe,Php,Email,Wamp,Sendmail.exe,我花了一上午的时间在网上搜索,试图找到一个解决办法。 我已经在Windows 8.1上安装了wamp服务器,我正在尝试使用sendmail()和我的gmail帐户发送一些邮件 当我将sendmail配置为使用端口nº465时,总是会出现以下错误:套接字错误#10060连接超时 如果我尝试使用端口nº587,我会在错误日志中看到这一行:连接正常关闭。但没有发送电子邮件 这是我的sendmail.ini文件 [sendmail] smtp_server=smtp.gmail.com ;I tried

我花了一上午的时间在网上搜索,试图找到一个解决办法。 我已经在Windows 8.1上安装了wamp服务器,我正在尝试使用sendmail()和我的gmail帐户发送一些邮件

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

如果我尝试使用端口nº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_模块在apache上是活动的,php使用php_open_ssl和php_套接字扩展

我还尝试使用特技,但没有成功

2014年1月27日编辑

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

我终于找到了答案


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

  • 右键单击sendmail.exe
  • 性质
  • 相容性
  • 更改所有用户的配置
  • 作为Windows XP SP 3执行
  • 以管理员身份执行
  • 保存:D


    在这种胡说八道中浪费了两天:(

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

  • 右键单击sendmail.exe
  • 性质
  • 相容性
  • 更改所有用户的配置
  • 作为Windows XP SP 3执行
  • 以管理员身份执行
  • 如果您使用gmail,您需要创建新密码“您的应用程序特定密码”

  • 作为已接受答案的扩展:

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

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

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

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

    例如,如果您使用PHP内置服务器,请以admin的身份运行命令提示符,并使用

    C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder
    
    当然,更改文件路径以满足您的需要

    希望这对别人有帮助!!!在这上面花了很多时间

    在Windows10上,我发现唯一有效的方法是运行兼容性疑难解答

  • 右键单击sendmail.exe
  • 单击“属性”
  • 选择兼容性选项卡
  • 单击“运行兼容性疑难解答”
  • 让windows自动修复它

  • 唯一看起来不对劲的是
    hostname=localhost
    试着注释一下。谢谢回复。我试过了,但没有解决问题(您可以尝试将这一行添加到“[mail function]”部分的
    php.ini
    mail.log=“c:\wamp\logs\php\u mail.log”
    这将打开邮件日志,并可能帮助您识别问题。完成此操作后,再进行另一项测试,这是[c:\wamp\www\testSendMail.php:7]上的php\u mail.log:mail()的内容:致:myemail@gmail.com--标题:来自:myemail@gmail.com答复:myemail@gmail.comX-Mailer:PHP/5.4.16。sendmail错误日志只有:连接正常关闭。可能您没有在PHP中正确创建电子邮件。(这浪费了我1.5小时
    2天的时间:(
    如果这不起作用,请为所有用户打开兼容模式。:P它浪费了2年:PReally?太简单了!哇!浪费了整整2天!我不明白第7步。你能详细解释一下吗?这节省了我的时间!感谢Sam使用旧的xampp安装,正如Yahya提到的,我将C:\xampp\xampp-control.exe设置为以管理员身份运行,并执行以下操作Rumppelstinsk提到的。我停止接收sendmail命令提示符弹出窗口和“套接字错误#10060连接超时”。我的sendmail Error.log.Thanksry中的错误也设置了/php/php.exe作为管理员运行。对我来说,这很有效。