我试图从本地主机发送邮件。 但是我无法从本地主机发送邮件 所以有人能告诉我如何重新配置我的xampp从本地主机发送邮件


当前回答

我尝试了许多方法从XAMPP Localhost发送邮件,但由于XAMPP没有SSL证书,我的电子邮件请求被Gmail或类似的SMTP服务提供商阻止。

然后我使用MailHog本地smtp服务器,你需要做的就是运行它。 Localhost:1025是SMTP服务器, Localhost:8025是邮件服务器,在那里您可以检查您发送的电子邮件。

这是我的代码:

    require_once "src/PHPMailer.php";
    require_once "src/SMTP.php";
    require_once "src/Exception.php";

    $mail = new PHPMailer\PHPMailer\PHPMailer();

      //Server settings
    $mail->SMTPDebug = 3;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'localhost';                    // Set the SMTP server to send through
    $mail->Port       = 1025;                                    // TCP port to connect to
    // $mail->Username   = '';                     // SMTP username
    // $mail->Password   = '';                               // SMTP password
    // $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    // $mail->SMTPSecure = 'tls';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted

    //Recipients
    $mail->setFrom('testtoo@testto.com', 'Mailer');
    $mail->addAddress('testtoo@webbamail.com', 'Joe User');     // Add a recipient

    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }

MailHog Github Repository链接

其他回答

我花了一个多小时才搞定。对于每个人都有同样的问题,所有的建议张贴不工作:你必须重新启动Apache在你的XAMPP inrerface!只是重新启动XAMPP行不通!!

你可以用sendmail包从本地主机发送邮件,sendmail包是XAMPP内置的。 所以如果你使用XAMPP,那么你可以很容易地从本地主机发送邮件。

例如,您可以配置C:\xampp\php\php.ini和C:\xampp\ sendmail\sendmail.ini用于gmail发送邮件。

在C:\xampp\php\php.ini中找到extension=php_openssl.dll,并从该行开始删除分号,以使SSL适用于gmail的localhost。

在php.ini文件中找到[邮件函数]并更改

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

打开C:\xampp\sendmail\sendmail.ini。将sendmail.ini中的所有现有代码替换为以下代码

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com

现在你做到了!!创建带有邮件功能的PHP文件,并从本地主机发送邮件。

PS:不要忘记在上面的代码中替换my-gmail-id和my-gmail-password。 此外,如果你从上面复制了设置,不要忘记删除重复的键。例如,如果php.ini文件中有另一个sendmail_path: sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe

还记得使用XAMMP控制面板重新启动服务器,以便更改生效。

对于gmail,请检查https://support.google.com/accounts/answer/6010255以允许从不太安全的应用程序访问。

在Linux上发送电子邮件(使用sendmail包)通过Gmail从 使用gmail表单发送邮件 本地主机。

根据我的个人经验,我发现与Vikas Dwivedi非常相似的答案会很好地工作。

步骤1 (php.ini文件)

在php.ini文件xampp\php\php.ini。更改设置如下:

 extension=php_openssl.dll
 [mail function]
 sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
 mail.add_x_header=On

通过put关闭邮件函数下的其他变量;在他们面前。例如;smtp_port = 25

步骤2 (sendmail.ini文件)

在sendmail.ini位于xampp\sendmail\semdmail.ini更改为 后:

 smtp_server=smtp.gmail.com
 smtp_port=465
 smtp_ssl=auto
 auth_username=address@gmail.com
 auth_password=YourPassword

步骤3(代码)

创建一个php文件,并使用以下命令:

 <?php
    mail($to, "subject", "body", "From: ".$from);
 ?>

请注意

为了重新加载php.ini,您需要重新启动apache。 你需要在https://myaccount.google.com/u/1/security激活谷歌不太安全的应用程序访问 使用管理员权限运行Xampp可能会有所帮助。

在本地主机或本地服务器上发送电子邮件非常简单

注意:我使用的测试邮件服务器软件在Windows 7 64bit安装Xampp

只需下载测试邮件服务器工具,并根据其网站上测试邮件服务器工具的说明进行安装

现在您只需要更改php.ini文件下的两行

找到[mail function]并删除前面的分号;smtp = localhost sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

您不需要更改任何其他内容,但如果您仍然没有收到电子邮件,则检查SMTP端口,端口号必须相同。

以上方法是针对Xampp软件提供的默认设置。

您必须为此定义一个SMTP服务器和端口。除了从实时主机发送邮件。

这是一个有用的链接。

注意:该端口应未使用。请小心点,Some 像Skype这样的应用程序使用默认端口和阻止 发送邮件。