首页 > 解决方案 > 无法在 wamp64 中使用 mail() 或 phpmailer 通过 php 发送邮件

问题描述

我正在创建一个登录页面。为此,注册后我需要将邮件发送给用户进行验证。因此,我需要发送邮件。要发送邮件,我尝试了这样的 mail() 函数,

<?php
//sending email with the php mail()
mail('mahadev.3333@gmail.com', 'Subject Line Here', 'Body of Message Here', 'From: vidya.5555@gmail.com');
?>

我已经配置了 php.ini 文件,如下所示,

[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 ="vidya.merahkee@gmail.com"

我正在使用 Windows 64 位。

而且我也尝试过使用phpmailer。但是,我没有找到任何解决方案。因为,2 天我正在尝试这个。我无法做到这一点。

有人可以帮我解决这个问题吗?

标签: phpemail

解决方案


首先,如果您在生产服务器上使用脚本,请询问您的管理员邮件功能是否处于活动状态。有时在生产服务器上它被站点管理员阻止。

其次,如果您在 localhost 服务器上使用此脚本意味着在您的桌面上,那么首先您必须使用邮件服务器启动。

例如,我正在考虑您在 Windows 上使用 XAMMPP,那么您必须从 XAMPP 控制面板 启动Mercury 邮件服务器。Mercury默认带有postmasternewuser两个用户。

然后,您必须下载Mozilla Thunderbird邮件客户端,并按照Create New account > email using the newuser@localhost 并手动配置 pop 和 smtp 服务器和端口,在邮件客户端中配置 newuserpostmaster用户。通常是默认端口。

你可以使用sendmail_from ="newuser@localhost"

然后检查Mercury Mail 服务器是否正在运行,然后测试您的脚本。

它将发送邮件,然后您在Mozilla Thunderbird邮件客户端中检查它。

第三:设置From:你必须使用header下面的

$headers = "From: newuser < newuser@domain.com >\n";

   <?php
     $send_to      = 'postmaster@localhost';
     $mail_subject = 'Subject of Your mail';
     $message_body = 'Body of your email like message form php script.';
     $headers = 'From: newuser@localhost' . "\r\n";
     mail($send_to, $mail_subject, $message_body, $headers);

  ?>

我希望这能解决问题。

注意如果您想从 localhost 发送电子邮件到 gamil 或任何其他邮件站点,那么您必须使用sendmail应用程序或更多教程搜索 google 术语,例如“在 PHP 中通过 Gmail 发送电子邮件”


推荐阅读