【问题标题】:App wants to send email from localhost应用程序想要从本地主机发送电子邮件
【发布时间】:2010-09-09 11:15:28
【问题描述】:

我正在开发一个 php 应用程序,需要测试发送电子邮件的功能。问题是我使用的是开发环境(Windows 上的 wamp),所以我猜我无法访问 smtp 或邮件服务器。

看来我可能需要安装一个单独的应用程序来充当我的邮件服务器。最简单的方法是什么(我在 Windows 上使用 wamp 工作),是否有另一种替代方案,例如供开发人员测试的公共服务器(请免费,因为我可能只会使用它 10 次,直到收到电子邮件功能进行了调整)。那么我猜我需要更改我的开发环境本身的设置?任何人都可以对此有所了解。

谢谢

【问题讨论】:

    标签: php email smtp wamp


    【解决方案1】:

    XAMPP 带有Mercury 来处理电子邮件。如有必要,它可以通过 SSL 与 SMTP 服务器通信,对我来说效果很好。

    【讨论】:

    • 看来我使用 wamp 做出了错误的选择。
    • @vla 没什么大不了的,添加 Mercury 应该相当容易。单独安装它,并在 php.ini 中指定 localhost 作为 SMTP 服务器应该可以完成这项工作。
    【解决方案2】:

    您需要一个 SMTP 服务器。我使用 PostCast Server,它是免费的并且可以满足需要。

    【讨论】:

      【解决方案3】:

      您是否尝试过创建虚假的 GMail 帐户,然后通过其 SMTP 服务器发送电子邮件?这是示例 - 对我来说效果很好。

      http://phpmailer.worxware.com/index.php?pg=exampleagmail

      【讨论】:

        【解决方案4】:

        你试过PHP函数吗

        mail($to, $subject, $body, $headers)
        

        http://php.net/manual/en/function.mail.php

        【讨论】:

        • 您仍然需要在本地计算机上安装邮件服务器。
        【解决方案5】:

        XAMPP 带有一个“假”的 sendmail 程序。如果您使用 XAMPP,则可以这样使用 sendmail:(忽略“仅适用于 Unix”警告;它在 Windows 上运行良好)

        [mail function]
        ; For Win32 only.
        ; http://php.net/smtp
        ;SMTP = localhost
        ; http://php.net/smtp-port
        ;smtp_port = 25
        
        ; For Win32 only.
        ; http://php.net/sendmail-from
        ;sendmail_from = me@example.com
        
        ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
        ; http://php.net/sendmail-path
        sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -i"
        

        Sendmail 应该有一个sendmail.ini;应该这样配置:

        # Example for a user configuration file
        
        # Set default values for all following accounts.
        defaults
        logfile "C:\xampp\sendmail\sendmail.log"
        
        # Mercury
        #account Mercury
        #host localhost
        #from postmaster@localhost
        #auth off
        
        # A freemail service example
        account ACCOUNTNAME_HERE
        tls on
        tls_certcheck off
        host smtp.gmail.com
        from EMAIL_HERE
        auth on
        user EMAIL_HERE
        password PASSWORD_HERE
        
        # Set a default account
        account default : ACCOUNTNAME_HERE
        

        当然,将 ACCOUNTNAME_HERE 替换为任意帐户名称,将 EMAIL_HERE 替换为有效的电子邮件(例如 Gmail 或 Hotmail),并将 PASSWORD_HERE 替换为您的电子邮件密码。现在,您应该可以发送邮件了。请记住重新启动 Apache(从控制面板或批处理文件)以使对 PHP 的更改生效。

        【讨论】:

          猜你喜欢
          • 2016-07-22
          • 2013-09-03
          • 2013-04-16
          • 2014-10-25
          • 2013-10-01
          • 2010-12-19
          相关资源
          最近更新 更多