为啥php邮件功能在xampp中不起作用

Posted

技术标签:

【中文标题】为啥php邮件功能在xampp中不起作用【英文标题】:why php mail function not work in xampp为什么php邮件功能在xampp中不起作用 【发布时间】:2013-05-29 05:16:00 【问题描述】:

我在使用 xampp 时遇到问题。我想检查邮件表格,但我看不到任何结果。 我在本网站中像本教程一样配置 Mercury/32:

http://system66.blogspot.com/2010/01/how-to-send-mail-from-localhost-with.html

我通过 Outlook 检查电子邮件,它的工作。 我检查了通过 Mercury 在管理面板中发送邮件发送邮件,它工作正常。

但是当我使用邮件 php 功能时,我无法发送电子邮件,也无法通过 Outlook 接收此电子邮件。

为什么?

请帮帮我

【问题讨论】:

您好,欢迎来到 SO。首先,向我们展示一些代码,以便我们了解您尝试了什么以及如何修复它。 你的mail调用返回什么值 【参考方案1】:

为此,您需要致电您的 ISP 并要求他们提供 smtp out 服务器地址。完成后,您需要在 C:xampp\php\php.ini 文件中配置 SMTP 设置,或者您可以在 php 脚本的开头添加以下行。

ini_set("SMTP","yoursmtpoutgoingserver");

【讨论】:

【参考方案2】:

您必须在 php.ini 文件中设置您的 SMTP 服务器设置

[mail function]
; For Win32 only.
; "http://php.net/smtp"
SMTP = localhost
; "http://php.net/smtp-port"
smtp_port = 25

如果您不在本地运行邮件服务器,则需要访问远程服务器,例如您的 isp 或 gmail

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

【讨论】:

我们将 Outlook 用于电子邮件客户端。因此,只需获取 Outlook 信息并将其插入即可。对吗?【参考方案3】:

这对我有用,希望对你有帮助:

    编辑您的 php.ini (xampp\php\php.ini)。搜索 [mail function] 并相应地更改这些参数。 SMTP = smtp.gmail.com smtp_port = 587 sendmail_from = [your_gmail_username]@gmail.com 注意:此 gmail 帐户将用于发送电子邮件 sendmail_path = “\”D:\xampp\sendmail\sendmail.exe\”-t” 注意:我确实在 D:\xampp 安装了我的 xampp 编辑您的 sendmail.ini (xampp\sendmail\sendmail.ini)

评论“Mercury”和“A free mail service example”内容如下: # 水星 #account 水星 #host 本地主机 #来自 postmaster@localhost #auth 关闭 # 免费邮件服务 #account Hotmail #tls 开启 #tls_certcheck 关闭 #host smtp.live.com #来自 [exampleuser]@hotmail.com #auth 开启 #user [exampleuser]@hotmail.com #password [示例密码]

    添加您要用来发送邮件的帐户。在我的示例中,我配置了 Gmail 帐户,如下所示:
      帐户 Gmail
    tls 开启 tls_certcheck 关闭 主机 smtp.gmail.com 来自 [your_gmail_username]@gmail.com 授权开启 用户 [your_gmail_username]@gmail.com 密码 [your_gmail_password]

    587 端口

      如下图设置默认帐号为Gmail:

    帐户默认值:Gmail

【讨论】:

【参考方案4】:

我明白了。我设置了这个配置,现在我可以在 Outlook 中收到我发送的电子邮件:

我只需要配置 D:\xampp\sendmail\sendmail.ini 默认包含一行

smtp_server=mail.mydomain.com

我不得不把它改成

smtp_server=localhost

无需在旧版本的 XAMPP 中进行配置。 [邮件功能]的正确配置在 D:\xampp\php\php.ini

; XAMPP:如果您想使用 SMTP 服务器,请将此注释掉 汞 SMTP = 127.0.0.1 smtp_port = 25

; XAMPP 重要说明 (1):如果 XAMPP 安装在基本目录中 带空格(例如 c:\program filesD:\xampp) fakemail 和 mailtodisk 不能正常工作。 ; XAMPP 重要提示(2):在这种情况下,请 复制根文件夹中的 sendmail 或 mailtodisk 文件夹(例如 C:\sendmail) 并将其用于 sendmail_path。

; XAMPP:如果您想使用 fakemail 转发到您的邮箱(sendmail 文件夹中的 sendmail.exe) sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

; XAMPP:如果您想使用 mailToDisk,请将其注释掉,它 将所有邮件写入 D:\xampp\mailoutput 文件夹 ; sendmail_path ="D:\xampp\mailtodisk\mailtodisk.exe"

现在,我正在收件箱中接收邮件。请注意“D:\xampp\”是我的XAMPP安装路径。

感谢所有朋友

【讨论】:

以上是关于为啥php邮件功能在xampp中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在xampp localhost中发送的php邮件不起作用[重复]

PHP Header Location 在 localhost xampp 中不起作用?

Javascript 在 XAMPP 上的 PHP 中不起作用

.htaccess 在 xampp 中不起作用(Windows 10)

AWS PHP SDK 2 (aws.phar) 在 xampp 中不起作用

php代码在html文件中不起作用,.htaccess配置,dreamweaver php服务器设置,使用xampp [重复]