Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller\Perform;
- use App\Entity\Mailer;
- use PHPMailer\PHPMailer\PHPMailer;
- use App\Dao\TemplateEmailDao;
- require_once __ROOT__ . 'public/assets/mail/PHPMailer.php';
- require_once __ROOT__ . 'public/assets/mail/Exception.php';
- require_once __ROOT__ . 'public/assets/mail/SMTP.php';
- class EmailController extends Mailer
- {
- private $email;
- public function __construct()
- {
- $this->email = new PHPMailer();
- }
- private function setInfoConexao()
- {
- //Define a linguagem como pt-br
- $this->email->setLanguage('br', __ROOT__ . 'public/assets/mail/language/');
- //Dados do servidor e tipo de conexão
- $this->email->isSMTP(); //Tipo de mensagem: SMTP
- $this->email->Host = '';
- $this->email->SMTPAuth = true; //Autenticação
- $this->email->Username = ''; //Usuário do servidor SMTP
- $this->email->Password = ''; //Senha da caixa postal utilizada
- $this->email->SMTPSecure = 'tls';
- $this->email->Port = 587;
- }
- private function setInfoRemetente()
- {
- $this->email->setFrom('', '');
- }
- private function setInfoDestinatario(array $request)
- {
- $this->email->addAddress($request['destinatario_email'], $request['destinatario_nome']);
- }
- private function setInfoCodificacao()
- {
- $this->email->isHTML(true); //Define que o e-mail será enviado como HTML
- $this->email->CharSet = 'utf-8'; //Charset da mensagem (opcional)
- }
- private function setInfosMensagem($tipo_template)
- {
- $template = new TemplateEmailDao();
- switch ($tipo_template) {
- case 'tenho_interesse':
- $template = $template->findById(1);
- $assunto = $template['titulo'];
- $mensagem = $template['corpo'];
- $this->email->Subject = $assunto;
- $this->email->Body = $mensagem;
- $this->email->AltBody = strip_tags($mensagem);
- break;
- default:
- $this->email->Subject = $this->getAssunto();
- $this->email->Body = $this->getMensagemHTML();
- $this->email->AltBody = strip_tags($this->getMensagemHTML());
- break;
- }
- }
- public function enviarEmail(array $request)
- {
- $this->setInfoConexao();
- $this->setInfoRemetente();
- $this->setInfoDestinatario($request);
- $this->setInfoCodificacao();
- $this->setInfosMensagem($request['tipo_template']);
- //Envia a mensagem
- $enviado = $this->email->send();
- //Limpa os destinatários e os anexos
- $this->email->clearAllRecipients();
- $this->email->clearAttachments();
- /*$this->testStatus($enviado);*/
- return $enviado;
- }
- /*private function testStatus($status) { //Testar status, tire esse comentario e do método enviarEmail
- //Exibe uma mensagem de resultado
- if ($status) {
- echo "E-mail enviado com sucesso!";
- } else {
- echo "Não foi possível enviar o e-mail.\n";
- echo "Informações do erro: " . $this->email->ErrorInfo;
- }
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement