Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Models;
- use \PHPMailer;
- use \Tracy\Debugger;
- /**
- * MAILER MODEL USING PHPMAILER
- */
- class Mailer
- {
- protected $view;
- public function __construct($view)
- {
- $this->view = $view;
- }
- public function submitEmail($mailto, $twig_template, $config, $postdata, $subject)
- {
- // GET VIEW
- $view = $this->view;
- // RENDER EMAIL TEMPLATE
- $template = '/emails/' . $twig_template . '.twig';
- $content = $view->fetch($template, [
- 'postdata' => $postdata,
- 'config' => $config
- ]);
- $response = [
- 'response_status' => 'success',
- 'response_message' => ''
- ];
- // NEW PHPMAILER INSTANCE
- $mail = new PHPMailer;
- // PHP MAILER SETTINGS
- $mail->setLanguage('fr');
- $mail->CharSet = 'UTF-8';
- // SERVER SETTINGS
- $mail->IsSMTP();
- $mail->Host = $config['website']['email']['host'];
- $mail->SMTPAuth = true;
- $mail->Username = $config['website']['email']['address'];
- $mail->Password = $config['website']['email']['password'];
- $mail->SMTPSecure = 'ssl';
- $mail->Port = 465;
- // ADDRESS SETTINGS
- $mail->SetFrom($config['website']['email']['address'], $config['website']['name']);
- $mail->addAddress($mailto);
- // EMAIL SETTINGS
- $mail->isHTML(true);
- $mail->Subject = $subject . ' ' . $postdata['firstname'];
- $mail->Body = $content;
- // GET THE RESPONSE
- $testresponse = $mail->send();
- // TEST THE RESPONSE AND RETURN A MESSAGE
- if ($mailto != $config['website']['email']['address']) {
- // IF NOT SENT
- if (!$testresponse) {
- // LOG ERRORS
- $log_message= 'PHPMailer Error: ' . $mail->ErrorInfo . "\n" . 'from: ' . $mailto. "\n";
- Debugger::log($log_message, Debugger::ERROR);
- // JSON RESPONSE
- $response = [
- 'response_status' => 'error',
- 'response_message' => $mail->ErrorInfo . ' Merci de réessayer'
- ];
- // IF SENT
- } else {
- // JSON RESPONSE
- $response['response_message'] = 'Merci ' . $postdata['firstname'];
- }
- }
- // RETURN RESPONSE
- $this->response = $response;
- }
- public function getResponse()
- {
- $response = $this->response;
- return $response;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement