Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Models;
  4.  
  5. use \PHPMailer;
  6. use \Tracy\Debugger;
  7.  
  8. /**
  9. * MAILER MODEL USING PHPMAILER
  10. */
  11.  
  12. class Mailer
  13. {
  14. protected $view;
  15.  
  16. public function __construct($view)
  17. {
  18. $this->view = $view;
  19. }
  20.  
  21. public function submitEmail($mailto, $twig_template, $config, $postdata, $subject)
  22. {
  23. // GET VIEW
  24. $view = $this->view;
  25.  
  26. // RENDER EMAIL TEMPLATE
  27. $template = '/emails/' . $twig_template . '.twig';
  28. $content = $view->fetch($template, [
  29. 'postdata' => $postdata,
  30. 'config' => $config
  31. ]);
  32.  
  33. $response = [
  34. 'response_status' => 'success',
  35. 'response_message' => ''
  36. ];
  37.  
  38. // NEW PHPMAILER INSTANCE
  39. $mail = new PHPMailer;
  40.  
  41. // PHP MAILER SETTINGS
  42. $mail->setLanguage('fr');
  43. $mail->CharSet = 'UTF-8';
  44.  
  45. // SERVER SETTINGS
  46. $mail->IsSMTP();
  47. $mail->Host = $config['website']['email']['host'];
  48. $mail->SMTPAuth = true;
  49. $mail->Username = $config['website']['email']['address'];
  50. $mail->Password = $config['website']['email']['password'];
  51. $mail->SMTPSecure = 'ssl';
  52. $mail->Port = 465;
  53.  
  54. // ADDRESS SETTINGS
  55. $mail->SetFrom($config['website']['email']['address'], $config['website']['name']);
  56. $mail->addAddress($mailto);
  57.  
  58. // EMAIL SETTINGS
  59. $mail->isHTML(true);
  60. $mail->Subject = $subject . ' ' . $postdata['firstname'];
  61. $mail->Body = $content;
  62.  
  63. // GET THE RESPONSE
  64. $testresponse = $mail->send();
  65.  
  66. // TEST THE RESPONSE AND RETURN A MESSAGE
  67. if ($mailto != $config['website']['email']['address']) {
  68.  
  69. // IF NOT SENT
  70. if (!$testresponse) {
  71. // LOG ERRORS
  72. $log_message= 'PHPMailer Error: ' . $mail->ErrorInfo . "\n" . 'from: ' . $mailto. "\n";
  73. Debugger::log($log_message, Debugger::ERROR);
  74. // JSON RESPONSE
  75. $response = [
  76. 'response_status' => 'error',
  77. 'response_message' => $mail->ErrorInfo . ' Merci de réessayer'
  78. ];
  79.  
  80. // IF SENT
  81. } else {
  82.  
  83. // JSON RESPONSE
  84. $response['response_message'] = 'Merci ' . $postdata['firstname'];
  85. }
  86. }
  87. // RETURN RESPONSE
  88. $this->response = $response;
  89. }
  90.  
  91. public function getResponse()
  92. {
  93. $response = $this->response;
  94.  
  95. return $response;
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement