使用 XAMPP 1.8.0、MercuryMail 和 mail() 在收件箱中没有收到邮件

2024-04-12php开发问题
2

本文介绍了使用 XAMPP 1.8.0、MercuryMail 和 mail() 在收件箱中没有收到邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我使用包含 Apache 2.4.2、PHP 5.4.5 和 MySQL 5.5 的 XAMPP 1.8.0 升级了我的本地服务器.我通过运行 MercuryMail 使用 PHP mail() 函数发送邮件,但我的收件箱中没有收到电子邮件.
当我使用 Mozilla Thunderbird 进行测试时,发送邮件正常.并且 mail() 函数似乎没有发出错误.

I upgraded my local server using XAMPP 1.8.0 which contains Apache 2.4.2, PHP 5.4.5 and MySQL 5.5. I send mails with PHP mail() function by running MercuryMail, but no email received in my inbox.
Sending mails are working when I tested with Mozilla Thunderbird. And the mail() function seems to be working with no error issued.

我在我的 XAMPP 安装路径 D:xamppphp 中检查了 php.ini.我在下面看到了这个

I checked php.ini in my XAMPP installation path D:xamppphp. I saw this below

[mail function]  
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury  
; SMTP = localhost  
; smtp_port = 25  

; For Win32 only.  
; http://php.net/sendmail-from  
; sendmail_from = postmaster@localhost  

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:program filesD:xampp) fakemail and mailtodisk do not work correctly.  
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:sendmail) and use this for sendmail_path.    

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)  
; sendmail_path = ""D:xamppsendmailsendmail.exe" -t"  

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:xamppmailoutput folder  
; sendmail_path = "D:xamppmailtodiskmailtodisk.exe"  

我调整了一些 SMTP 设置组合.
我注释掉了主机和端口

I tweaked some combination of SMTP settings.
I commented out host and port

; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury  
SMTP = localhost  
smtp_port = 25

我注释掉了 sendmail_path,但它不起作用.无法发送邮件.

I commented out sendmail_path, but it did not work. Mail could not be sent.

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)  
sendmail_path = ""D:xamppsendmailsendmail.exe" -t"  

再次,我注释掉了另一个 sendmail_path 以使用 mailToDisk

Again, I commented out anothor sendmail_path to work with mailToDisk

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:xamppmailoutput folder  
sendmail_path = "D:xamppmailtodiskmailtodisk.exe"  

似乎工作正常,但收件箱中没有收到邮件.D:xamppmailoutput

It seems working, but no mail received in inbox. Nothing found in D:xamppmailoutput

在 php 邮件日志 (D:xamppphplogsphp_mail.log) 中,我发现了几行可能表明正在发送邮件的日志行.

In php mail log (D:xamppphplogsphp_mail.log), I found several log lines which likely saying mails were sending.

mail() on [D:xampphtdocs....:127]: To: sithu@localhost.com -- Headers: MIME-Version: 1.0  Content-type: text/html; charset=text/html  Return-Path:Sithu <stk@localhost.com>  From: Sithu <stk@localhost.com>  Reply-To: Sithu <stk@localhost.com>  
mail() on [D:xampphtdocs....:127]: To: test@localhost.com -- Headers: MIME-Version: 1.0  Content-type: text/html; charset=text/html  Return-Path:admin@localhost.com  From: admin@localhost.com  Reply-To: admin@localhost.com  
mail() on [D:xampphtdocs....:127]: To: test@localhost.com -- Headers: MIME-Version: 1.0  Content-type: text/html; charset=text/html  Return-Path:Members <admin@localhost.com>  From: Members <admin@localhost.com>  Reply-To: Members <admin@localhost.com> 

我也尝试注释掉 sendmail_from,但没有成功.

I also tried to comment out sendmail_from, but no luck.

; For Win32 only.  
; http://php.net/sendmail-from  
sendmail_from = postmaster@localhost  

我还缺少什么配置吗?


Mercury 邮件服务器正在运行.
每当我更新 php.ini 时,我都会重新启动 Apache 服务器.


Mercury mail server is running.
Whenever I updated php.ini, I restarted Apache server.

推荐答案

我只需要配置D:xamppsendmailsendmail.ini默认情况下,它包含行

I just need to configure D:xamppsendmailsendmail.ini By default, it contains the line

smtp_server=mail.mydomain.com

我不得不把它改成

smtp_server=localhost

无需在旧版本的 XAMPP 中进行配置.
D:xamppphpphp.ini[mail function]的正确配置是

No need to configure this in the older versions of XAMPP.
The correct configuration for [mail function] in D:xamppphpphp.ini is

; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = 127.0.0.1
smtp_port = 25

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:program filesD:xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:sendmail) and use this for sendmail_path.  

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = ""D:xamppsendmailsendmail.exe" -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:xamppmailoutput folder
; sendmail_path = "D:xamppmailtodiskmailtodisk.exe"

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

Now, I'm receiving mails in my inbox. Please note that "D:xampp" is my XAMPP installation path.

这篇关于使用 XAMPP 1.8.0、MercuryMail 和 mail() 在收件箱中没有收到邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17