如何在 xampp 上使用 phpmailer 发送邮件

Posted

技术标签:

【中文标题】如何在 xampp 上使用 phpmailer 发送邮件【英文标题】:how to send mail using phpmailer on xampp 【发布时间】:2018-02-24 11:39:54 【问题描述】:

我一直在尝试使用 xampp 上的 php mailer 发送邮件,但我确实收到此错误消息 无法发送消息。邮件程序错误:以下发件人地址失败:xxxx2@gmail.com:在未连接的情况下调用 Mail()

拜托,我需要有关如何解决此问题的帮助。 这是我的代码;

<?php
require( 'class.phpmailer.php' );

  $mail = new PHPMailer;
  $mail->IsSMTP();
  $mail->SMTPAuth = true;
  $mail->Host = "tls://smtp.gmail.com";
  $mail->Port = 25;
  $mail->Username = "xxxx@gmail.com";
  $mail->Password = "xxxxx";
  //Sending the actual email
  $mail->setFrom('xxxx2@gmail.com', 'Aaron');
  $mail->addAddress('xxxx2@gmail.com', 'Aaron');     // Add a recipient
  $mail->ishtml(false);                                  // Set email format to HTML
  $mail->Subject = 'Calculation form results from ';
  $mail->Body = 'testing...';

  if(!$mail->send()) 
    echo 'Message could not be sent. ';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
    exit;
  
?>

【问题讨论】:

根据 phpmailer 的教程,您应该使用require 'PHPMailerAutoload.php';。此外,它应该是$mail = new PHPMailer ();。 github.com/PHPMailer/PHPMailer/wiki/Tutorial support.google.com/mail/answer/… 你的端口错了。为 TLS 尝试 587。 $mail-&gt;Host = "tls://smtp.gmail.com"; $mail-&gt;Port = 587; 还是一样的错误 【参考方案1】:

从https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps字面上复制

//Create a new PHPMailer instance
$mail = new PHPMailer;

//Tell PHPMailer to use SMTP
$mail->isSMTP();

//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
// use
// $mail->Host = gethostbyname('smtp.gmail.com');
// if your network does not support SMTP over IPv6

//Set the SMTP port number - 587 for authenticated TLS
$mail->Port = 587;

//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';

//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "username@gmail.com";

//Password to use for SMTP authentication
$mail->Password = "yourpassword";

//Set who the message is to be sent from
$mail->setFrom('from@example.com', 'First Last');

//Set an alternative reply-to address
$mail->addReplyTo('replyto@example.com', 'First Last');

//Set who the message is to be sent to
$mail->addAddress('whoto@example.com', 'John Doe');

【讨论】:

如果有效,你能接受它作为正确答案吗?【参考方案2】:

我尝试使用 Composer 和 github,但无法通过 xampp 获取最新版本的 phpmailer 来处理我的测试 php 电子邮件。当我在 localhost 上运行程序时,它不断崩溃,因为电子邮件代码正在寻找 php mailer 类。 所以我回到谷歌,忽略了composer,下载了一个普通的php mailer 5.2.0 zip,并将这个zip直接解压缩到我的'websiteX'测试文件夹中,该文件夹位于xampp的htdocs中。

在我的“websiteX”文件夹中,我有我的 testmail.php 文件以及我的 phpmailer 解压缩文件夹,它包含在我的情况下实际工作的 class.phpmailer。

我花了一个星期的时间在闲逛,但现在我有 xampp php 电子邮件完美地发送到我的测试 gmail 帐户。我也使用 chrome 和 notepad++。

有趣的是,我也收到了带有 php mail() 命令的 php 电子邮件,尽管 Gmail 硬退回邮件,这不是很好。我上周做的第一件事是让 Mercury 邮件(包含在 xampp 中)工作。我点击此链接https://www.open-emr.org/wiki/index.php/Mercury_Mail_Configuration_in_Windows 并设法让 xampp 与 gmail 通信,这很棒!

祝您编码顺利。

【讨论】:

以上是关于如何在 xampp 上使用 phpmailer 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

PHPMailer在Windows10上没有运行Xampp

PHPMailer 错误:php_network_getaddresses:getaddrinfo 失败:LOCALHOST(XAMPP)中的名称解析暂时失败

如何在 Windows 上对 PHPMailer/OpenSSL TLS SMTP 进行故障排除?

使用PHPMAILER实现PHP发邮件功能

conposer phpmailer 发邮件

表单到电子邮件 - Xampp、PHP、Javascript、MAC OS