【问题标题】:Sending emails with WAMP使用 WAMP 发送电子邮件
【发布时间】:2010-12-31 20:57:45
【问题描述】:

我使用的是最新的 WAMP,但当我尝试发送电子邮件时会收到此信息:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\main\createaccount.php on line 8

消息传递失败...

消息:

$to = "xxx@hotmail.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
  echo("<p>Message successfully sent!</p>");
 } else {
  echo("<p>Message delivery failed...</p>");
 }

您还需要下载“邮件服务器”吗?

请帮忙。

【问题讨论】:

    标签: php email


    【解决方案1】:

    您没有在您的机器上运行 smtp 服务器,但您不必这样做。只需将 SMTP 设置为打开的 smtp 服务器即可:

    ini_set('SMTP', 'smtp.yourisp.com');
    

    查看您的 ISP 主页或http://www.e-eeasy.com/SMTPServerList.aspx 了解 SMTP 服务器列表。

    如果您有桌面邮件程序,则可以使用与发送邮件相同的地址。

    【讨论】:

    • thanksman,试过很多服务器都没有,但我得到了同样的错误信息,也许我运行的其他程序使用端口 25 ;/
    • 您确定将ini_set 放在mail 函数之前并且您是否尝试过您自己的ISP 的SMTP 服务器?
    【解决方案2】:

    我认为您的邮件服务器 (SMTP) 外发邮件服务器未在您的 php.ini 文件中配置。

    看看这个:

    http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm

    hotmail 也不允许你使用他们的邮件服务器。您应该使用 yahoo 或 gmail。

    【讨论】:

    • 至少 Gmail 需要受 SSL 保护的连接,所以这不是普通的旧 mail() 的选项。
    • @Tatu Ulmanen:谢谢 :) 据我回忆,我不认为雅虎会这样做。
    【解决方案3】:

    您确定这些服务器上安装了邮件程序吗?如果不是,那是你的问题。例如,XAMPP 带有一个名为 Mercury 的邮件程序,您必须先启动该程序,然后才能通过服务器发送邮件。

    【讨论】:

      【解决方案4】:

      这对我有用,也应该对你有用:使用 Fake Sendmail 和网络主机邮件服务器(即 - Godaddy、1and1 等)。

      1.) 下载 sendmail zip 并将其解压缩到 C:\Wamp\bin\sendmail(出于本示例的目的)。

      2.) 编辑 C:\wamp\bin\sendmail\sendmail.ini 并将以下内容设置为您的邮件服务器的要求(我的如下):

      smtp_server=mail.yourdomain.com
      smtp_port=26
      smtp_ssl=none
      ;default_domain=yourdomain.com
      auth_username=smtpuser@yourdomain.com
      auth_password=smtppassword
      ;pop3_server=
      ;pop3_username=
      ;pop3_password=
      ;force_sender=
      ;force_recipient=
      

      3.) 在 php.ini 文件中设置 sendmail.exe 的路径。

      [mail function]
      ; For Win32 only.
      SMTP =
      
      ; For Win32 only.
      sendmail_from =
      
      ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
      sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t"
      

      4.) 重启 Wampserver。

      您可能会成功使用 Gmail,但需要进行一些额外的调整才能使其正常工作。我更喜欢使用我上传代码的虚拟主机的邮件服务器。

      【讨论】:

      • 正是我需要链接我的开发。使用实际 GoDaddy 帐户的环境。非常感谢!
      • 这行得通!谢谢你。这救了我。 Wamp64 服务器突然停止在开发本地主机上工作,这救了我。
      • 感谢,在我的情况下,我还必须在 php.ini 中添加 SMTP 和 smtp_port。使用 Apache 2.4.9 (Win32) PHP 7.2.3
      【解决方案5】:

      如果您有 gmail 帐户,请按照这篇文章进行操作。 或者至少是您知道服务器、端口和这些东西的任何电子邮件帐户。

      Send Email From localhost

      【讨论】:

        【解决方案6】:

        这是另一个解决方案 - WAMP send Mail using SMTP localhost


        请记住,每次更改 php.ini 后,

        你必须重启 wamp (! ! !)

        附言在 php.ini 中,我使用过:

        SMTP = localhost 
        smtp_port = 25 
        sendmail_from = your_user@gmail.com
        

        或者如果 oyu 无法编辑 php.ini,请尝试在您的 php 脚本中插入这些行。

        ini_set("SMTP", "localhost");
        ini_set("smtp_port", "25");
        ini_set("sendmail_from", "your_user@gmail.com");
        

        【讨论】:

          猜你喜欢
          • 2014-05-20
          • 2014-01-24
          • 1970-01-01
          • 1970-01-01
          • 2012-12-07
          • 1970-01-01
          • 1970-01-01
          • 2015-07-19
          • 2018-06-18
          相关资源
          最近更新 更多