Hello
How can I send mails from my Controller with PhpMailer?
I add the PHP Mailer to my Continer:
$container->set('mail', function(){
return new PHPMailer(true);
});
And give it to the Controller:
$container->set(ContactController::class, function($container){
return new ContactController(
$container->get('view'),
$container->get('mail')
);
});
And my controller:
class ContactController{
protected $view;
protected $mail;
public function __construct(Twig $view, PhpMailer $mail){
$this->view = $view;
$this->mail = $mail;
}
public function sendMail(Request $request, Response $response, $args){
// send mail
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'smtp1.example.com'; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
//Recipients
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
// 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();
die('Message has been sent');
} catch (Exception $e) {
die("Message could not be sent.");
}
return $response->withHeader('Location', '/contact')->withStatus(301);
}
}
I get the following error:
Message: Call to undefined method stdClass::isSMTP()
Can please someone help me?
Thank you very much.