Cadastro e Login - #28 ClassMail
03/12/2018No 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!
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.
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.