我想将最新的PHPMailer库与require_once()
一起使用,而不是与Composer混为一谈。我想要一个最小化的纯xcopy部署。
这是我正在尝试做的事情:
require_once("src/PHPMailer.php");
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->setFrom($emailFrom, $emailFromName);
$mail->addAddress($emailTo, $emailToName);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("test body");
$mail->AltBody = 'HTML messaging not supported';
if(!$mail->send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}else{
echo "Message sent!";
}
我收到错误消息:
Fatal error: Class PHPMailer not found in [....]\EmailTester.php on line 21
第21行是这样的:
$mail = new PHPMailer;
这行只是我的猜测:
require_once("src/PHPMailer.php");
-显然我需要包含一个或多个文件,但我无法确定是哪个。我正在从gmail example on github工作,该文件也不包含在zip下载中。但是我可以在github中导航到它。在该示例文件中,它是这样开始的:
use PHPMailer\PHPMailer\PHPMailer;
require '../vendor/autoload.php';
$mail = new PHPMailer;
我在zip下载中看不到
autoload.php
文件,并且在全部搜索之后,我发现这意味着使用Composer。但是必须有某种方法可以简单地进行包含并获取我需要的文件。关于此PHPMailer库,一般来说,可能有些困扰我,也许还有 github :
autoload.php
? PHPMailerAutoload.php
。为什么我得到的文件与他得到的文件完全不同?该视频于2017年3月4日发布-不到一年前-自那时以来真的发生了太大变化吗? 总结:在没有外部依赖项和Composer之类的安装的情况下,如何才能使PHPMailer正常工作,而是使用
require_once()
来获得所需的信息? 最佳答案
这是完整的工作示例(尽管您看到了一些必须定义和设置的变量):
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2; // 0 = off (for production use) - 1 = client messages - 2 = client and server messages
$mail->Host = "smtp.gmail.com"; // use $mail->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6
$mail->Port = 587; // TLS only
$mail->SMTPSecure = 'tls'; // ssl is depracated
$mail->SMTPAuth = true;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->setFrom($emailFrom, $emailFromName);
$mail->addAddress($emailTo, $emailToName);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("test body"); //$mail->msgHTML(file_get_contents('contents.html'), __DIR__); //Read an HTML message body from an external file, convert referenced images to embedded,
$mail->AltBody = 'HTML messaging not supported';
// $mail->addAttachment('images/phpmailer_mini.png'); //Attach an image file
if(!$mail->send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}else{
echo "Message sent!";
}
关于php - 如何在没有 Composer 的情况下使用PHPMailer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48128618/