【问题标题】:Can't get PHPMailer working [duplicate]无法让 PHPMailer 工作 [重复]
【发布时间】:2016-05-20 05:27:29
【问题描述】:

我正在努力设置 PHPMailer 并在我的应用程序中工作。

安装看起来很简单。 我的目录结构如下:

|-[controllers]
|---controller.php
|-[vendor]
|---[PHPMailer]
|------class.phpmailer.php
|------PHPMailerAutoload.php
|-index.php

index.php

<?php
   ...
   require __DIR__ . '/vendor/PHPMailer/PHPMailerAutoload.php';
   ...
?>

controller.php

<?php
    include('vendor/PHPMailer/class.phpmailer.php');
    $mail = new PHPMailer();
    ...
?>

这和示例一样简单,但是当我运行它时,我收到以下错误:

解析错误:语法错误,文件意外结束 C:\wamp\www\commway\vendor\PHPMailer\class.phpmailer.php 2995 行

一切正常,我不知道我是如何设法打破这个的。 我什至尝试将所有内容都移动到 index.php 文件,但我得到了相同的结果。只要我打电话给$mail = new PHPMailer();,它就会抛出错误。

【问题讨论】:

  • C:\wamp\www\commway\vendor\PHPMailer\class.phpmailer.php 有足够的内容吗?
  • 在控制器中尝试做要求而不是包含。如果这给您带来错误,则上面的一行表示您的文件仍未在路径中找到。 as include 允许您的代码执行,即使文件未找到。
  • 另外,由于您的结构似乎是 MVC,如果您使用的是 composer,请尝试通过 composer 加载 phpmailer,例如“composer require phpmailer/phpmailer”
  • @MukeshRam 我最初是这样做的。但是,现在我不得不下载 zip 文件并手动放置文件。
  • @MukeshRam 我已将代码更改为require,当我单击文件路径时,它会将我带到正确的文件。但是,我仍然得到错误。事实上,即使我删除了$mail = new PHPMailer(); 行,我仍然会收到错误消息。

标签: php phpmailer


【解决方案1】:

我正在运行这段代码:

//      PHPmailer

require 'PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->isSMTP();                            // Set mailer to use SMTP
$mail->Host = SMTP;                         // Specify main and backup SMTP servers/*

$mail->From = EMAIL;
$mail->FromName = SENDER;
$mail->addAddress($Email, $FirstName);      // Add a recipient
$mail->WordWrap = 50;                       // Set word wrap to 50 characters
$mail->isHTML(true);                        // Set email format to HTML

$mail->Subject = $mailSubject;
$mail->Body    = $message;

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent to ' . $Email . "<br>";
} 

//      end of PHPmailer

结构:

PHPMailer-Master
-class.phpmailer.php
-class.pop3.php
-class.smtp.php
-PHPmailerAutoload.php

【讨论】:

  • 是来自您的索引文件吗?您从哪里运行此代码?
  • 它在一个名为“mail.php”的文件中,在www文件夹中,结构如图所示。
猜你喜欢
  • 2016-04-14
  • 2017-07-03
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多