Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Cadastro e Login - #28 ClassMail

03/12/2018

No vídeo de hoje iremos enviar nosso website para um servidor online com serviço de email e criaremos nossa ClassMail.

Enviando emails com React JS

Vamos iniciar setando no arquivo config.php os dados do nosso servidor de email:

#Informações do servidor de email
define("HOSTMAIL","MEU SERVIDOR DE EMAIL");
define("USERMAIL","USUÁRIO DO EMAIL");
define("PASSMAIL","SENHA DO EMAIL");

Os dados acima devem ser solicitados junto a sua empresa de hospedagem.

Posteriormente vamos criar nossa ClassMail.php:

<?php
namespace Classes;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

class ClassMail{
    private $mail;

    public function __construct()
    {
        $this->mail=new PHPMailer();
    }

    #Envio de email
    public function sendMail($email, $nome, $token=null , $assunto, $corpoEmail)
    {
        try {
            $this->mail->isSMTP();                                      // Set mailer to use SMTP
            $this->mail->Host = HOSTMAIL;  // Specify main and backup SMTP servers
            $this->mail->SMTPAuth = true;                               // Enable SMTP authentication
            $this->mail->Username = USERMAIL;                 // SMTP username
            $this->mail->Password = PASSMAIL;                           // SMTP password
            $this->mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
            $this->mail->Port = 587;                                    // TCP port to connect to
            $this->mail->CharSet='utf-8';
            $this->mail->SMTPOptions=array(
              "ssl"=>array(
                  "verify_peer"=>false,
                  "verify_peer_name"=>false,
                  "allow_self_signed"=>true
                  )
            );

            $this->mail->setFrom('EMAIL DA SUA EMPRESA', 'NOME DA SUA EMPRESA');
            $this->mail->addAddress($email, $nome);     // Add a recipient

            $this->mail->isHTML(true);                                  // Set email format to HTML
            $this->mail->Subject = $assunto;
            $this->mail->Body    = $corpoEmail;

            $this->mail->send();
            echo 'Message has been sent';
        } catch (Exception $e) {
            echo 'Message could not be sent. Mailer Error: ', $this->mail->ErrorInfo;
        }
    }
}

Agora na classe validate vamos criar uma composição para a ClassMail e chamar o método sendMail() na validação final do cadastro:

private $mail;

public function __construct()
{
    $this->mail=new ClassMail();
}

#Validação final do cadastro
public function validateFinalCad($arrVar)
{
    if(count($this->getErro())>0){
        $arrResponse=[
            "retorno"=>"erro",
            "erros"=>$this->getErro()
        ];
    }else{
        $this->mail->sendMail(
            $arrVar['email'],
            $arrVar['nome'],
            $arrVar['token'],
            "Confirmação de Cadastro",
            "
             <strong>Cadastro do Site</strong><br>
             Confirme seu email <a href='".DIRPAGE."controllers/controllerConfirmacao/{$arrVar['email']}/{$arrVar['token']}'>clicando aqui</a>.
            "
        );
        $arrResponse=[
            "retorno"=>"success",
            "erros"=>null
        ];
        $this->cadastro->insertCad($arrVar);
    }
    return json_encode($arrResponse);
}

Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Cadastro e Login - #27 Ajax Login e Caps Lock
Nessa vídeo-aula vamos trabalhar com ajax no sistema do login e alerta de caps lock quando o usuário digitar a senha.
Saiba mais!
Cadastro e Login - #29 Enviar site para o ar
Nessa vídeo-aula realizaremos o envio do website para o ar e realizaremos as devidas configurações para que ele rode sem problemas no novo servidor.
Saiba mais!
Cadastro e Login
Neste curso vamos aprender a criar um sistema completo de cadastro e login.
Saiba mais!