Я использую Slim Framework для создания нескольких веб-служб, теперь я хочу создать такой сервис, как: www.example.com/public/feedback. Этот сервис должен отправлять письмо с данными из формы, тогда я могуНайти способ использовать библиотеку PHPMailer в структуре Slim.Нужно ли включать библиотеку в index.php, и ее можно использовать в файле rout.php?Заранее спасибо.
Редактировать: Я надеюсь, что это может прояснить мои опасения:
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../../PHPMailer/Exception.php';
require __DIR__ . '/../../PHPMailer/PHPMailer.php';
require __DIR__ . '/../../PHPMailer/SMTP.php';
session_start();
// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
Приведенный выше код находится в моем файле index.php в общей папке и в route.php в папке src Iиметь следующий код:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
$app->get('/feedback',function(Request $request,Response $response,array $args){
$mail = PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com';// SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('user@example.com','WebApp Contact');
$mail->addAddress('mmucino@yahoo.com','Marco Muciño'); // Name is optional
// 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';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
return $response->withJSON(array(
'status' => 'OK'
));
С моими реальными данными вместо example.com
Но если я позвоню в службу с URL:
example.com/public/feedback
Iполучите ошибку:
Slim Application Error
The application could not run because of the following error:
Details
Type: Error
Message: Call to undefined function PHPMailer()
File: /home/tecallia/public_html/gabriel/src/routes.php
Line: 405
Что я делаю не так?Заранее спасибо.