如何在 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->Host = "tls://smtp.gmail.com"; $mail->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 错误:php_network_getaddresses:getaddrinfo 失败:LOCALHOST(XAMPP)中的名称解析暂时失败