XAMPP - 无法发送虚拟电子邮件
XAMPP - unable to send dummy emails
我无法让 XAMPP 使用 mailtodisk.exe 从 PHP 发送虚拟电子邮件(换句话说,将输出保存到磁盘而不是真正发送邮件)。相反,无论我做什么,邮件都会正常发送。我试图将其设置为不真正发送邮件,而是生成它们的输出,使用 XAMPP.
附带的 mailtodisk.exe 实用程序
我的 php.ini 设置对我来说似乎是正确的(虽然我不知道 sendmail_path 是否需要在转义引号中,因为注释 sendmail.exe 的路径是 - 在任何案例,我都试过了,但都没有用):
; sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
phpinfo()也显示设置正确:
我尝试使用 ini_set() 直接从源代码设置 "sendmail_path" 变量,我也尝试更改 "php.ini-production" 和 "php.ini-development" 文件(尽管毫无意义如果你问我),我什至完全删除了整个 sendmail.exe 包含文件夹,每次我更改设置时我都会重新启动 Apache,它仍然发送正常邮件。我的系统是运行Windows10,XAMPP版本是3.2.2,php版本是5.6.14。
我在这里错过了什么?
编辑: 我忘记提到它在我第一次安装 XAMPP 时一开始就可以正常工作。然后在某个时候我需要发送一封实际的邮件,所以我将 php.ini 更改为使用 sendmail.exe,此后我再也没有设法恢复它。
当我为我的 Web 服务器执行此操作时,我 运行 mailtodisk.exe,然后在根 XAMPP 文件夹中是邮件文件夹,电子邮件都在那里。
我不需要自己做任何配置,它就可以了。
也许尝试配置外部 SMTP 服务器以将其用于邮件,例如使用 google gmail。
如果您使用 PHPMailer 发送邮件,您需要确保它没有使用 SMTP(如果它打开到远程服务器的网络连接,它不会使用您的本地邮件程序)。为此,您需要 而不是 调用 isSMTP()
,因为默认方法是使用内置 mail()
函数:
/**
* Which method to use to send mail.
* Options: "mail", "sendmail", or "smtp".
* @type string
*/
public $Mailer = 'mail';
我无法让 XAMPP 使用 mailtodisk.exe 从 PHP 发送虚拟电子邮件(换句话说,将输出保存到磁盘而不是真正发送邮件)。相反,无论我做什么,邮件都会正常发送。我试图将其设置为不真正发送邮件,而是生成它们的输出,使用 XAMPP.
附带的 mailtodisk.exe 实用程序我的 php.ini 设置对我来说似乎是正确的(虽然我不知道 sendmail_path 是否需要在转义引号中,因为注释 sendmail.exe 的路径是 - 在任何案例,我都试过了,但都没有用):
; sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
phpinfo()也显示设置正确:
我尝试使用 ini_set() 直接从源代码设置 "sendmail_path" 变量,我也尝试更改 "php.ini-production" 和 "php.ini-development" 文件(尽管毫无意义如果你问我),我什至完全删除了整个 sendmail.exe 包含文件夹,每次我更改设置时我都会重新启动 Apache,它仍然发送正常邮件。我的系统是运行Windows10,XAMPP版本是3.2.2,php版本是5.6.14。
我在这里错过了什么?
编辑: 我忘记提到它在我第一次安装 XAMPP 时一开始就可以正常工作。然后在某个时候我需要发送一封实际的邮件,所以我将 php.ini 更改为使用 sendmail.exe,此后我再也没有设法恢复它。
当我为我的 Web 服务器执行此操作时,我 运行 mailtodisk.exe,然后在根 XAMPP 文件夹中是邮件文件夹,电子邮件都在那里。
我不需要自己做任何配置,它就可以了。
也许尝试配置外部 SMTP 服务器以将其用于邮件,例如使用 google gmail。
如果您使用 PHPMailer 发送邮件,您需要确保它没有使用 SMTP(如果它打开到远程服务器的网络连接,它不会使用您的本地邮件程序)。为此,您需要 而不是 调用 isSMTP()
,因为默认方法是使用内置 mail()
函数:
/**
* Which method to use to send mail.
* Options: "mail", "sendmail", or "smtp".
* @type string
*/
public $Mailer = 'mail';