Send email On LocalHost or Server without Mail ()

0

Hello, I have the system PHP below to perform the registration after submitting the user, the registration usually occurs, however I would like an email to be sent to the registered email, but the way I did it is not being sent Can someone help? Thank you in advance

<?php   
require_once('classes/conecta.cadastro.php');
$pdo = conectar();

    // RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO !
    $nome   = $_POST ["nome"];
    $data   = $_POST ["data"];
    $sexo   = $_POST ["sexo"];
    $email  = $_POST ["email"];
    $email2 = $_POST ["email2"];
    $senha  = sha1($_POST ["senha"]);
    $senha1 = sha1($_POST ["senha1"]);
    $cpf    = $_POST ["cpf"];
    $tel    = $_POST ["tel"];
    $cel    = $_POST ["cel"];
    $cep    = $_POST ["cep"];
    $rua    = $_POST ["rua"];
    $numero = $_POST ["numero"];
    $bairro = $_POST ["bairro"];
    $cidade = $_POST ["cidade"];
    $uf     = $_POST ["uf"];
    if ($instituicao = "OUTRA") {
        $instituicao = $_POST ["outrainst"];
    } else{
        $instituicao    = $_POST ["instituição"];
    }
    $nivel  = $_POST ["nivel"];
    $curso  = $_POST ["curso"];
    $area   = $_POST ["area"];

    $turno  = $_POST ["turno"];
    $palestras  = $_POST ["palestras"];
    $cidade2    = $_POST ["cidade2"];   

    if(!empty($_POST['dias']) && count($_POST['dias']) ){
       $chgeckboxes = $_POST['dias'];
       //implode
       $horario = implode(',', $_POST['dias']);
    }

    if(!empty($_POST['Habilidades']) && count($_POST['Habilidades']) ){
       $chgeckboxes = $_POST['Habilidades'];
       //implode
       $habilidades = implode(',', $_POST['Habilidades']);
    }


    $arq = $_FILES['foto']['name'];

    $arq = $_FILES['foto']['name'];

    $arq = str_replace(" ", "_", $arq);
    $arq = str_replace("ç", "c", $arq);

    if (file_exists("imagens/".$arq)) {
        $a = 1;

        while (file_exists("imagens/[".$a."]".$arq)) {
            $a++;
        }

        $arq = "[".$a."]".$arq;
    }

    $foto = $arq;
    $aprovado = '0';

    //Prepara o cadastro
    $cadastro = $pdo->prepare("INSERT INTO dados (nome, data, sexo, email, email2, senha, senha1, cpf, tel, cel, cep, rua, numero, bairro, cidade, uf, instituicao, nivel, curso, area, turno, horario, habilidades, palestras, cidade2, foto, aprovado) VALUES (:nome, :data, :sexo, :email, :email2, :senha, :senha1, :cpf, :tel, :cel, :cep, :rua, :numero, :bairro, :cidade, :uf, :instituicao, :nivel, :curso, :area, :turno, :horario, :habilidades, :palestras, :cidade2, :foto, :aprovado)");

    $cadastro->bindValue(":nome",$nome);
    $cadastro->bindValue(":data",$data);
    $cadastro->bindValue(":sexo",$sexo);
    $cadastro->bindValue(":email",$email);
    $cadastro->bindValue(":email2",$email2);
    $cadastro->bindValue(":senha",$senha);
    $cadastro->bindValue(":senha1",$senha1);
    $cadastro->bindValue(":cpf",$cpf);
    $cadastro->bindValue(":tel",$tel);
    $cadastro->bindValue(":cel",$cel);
    $cadastro->bindValue(":cep",$cep);
    $cadastro->bindValue(":rua",$rua);
    $cadastro->bindValue(":numero",$numero);
    $cadastro->bindValue(":bairro",$bairro);
    $cadastro->bindValue(":cidade",$cidade);
    $cadastro->bindValue(":uf",$uf);
    $cadastro->bindValue(":instituicao",$instituicao);
    $cadastro->bindValue(":nivel",$nivel);
    $cadastro->bindValue(":curso",$curso);
    $cadastro->bindValue(":area",$area);
    $cadastro->bindValue(":turno",$turno);
    $cadastro->bindValue(":horario",$horario);
    $cadastro->bindValue(":habilidades",$habilidades);
    $cadastro->bindValue(":palestras",$palestras);
    $cadastro->bindValue(":cidade2",$cidade2);
    $cadastro->bindValue(":foto",$foto);
    $cadastro->bindValue(":aprovado",$aprovado);
    //Valida o cadastro
    $validar = $pdo->prepare("SELECT * FROM tab_clientes WHERE email = ?");
    if (move_uploaded_file($_FILES['foto']['tmp_name'], 'imagens/'.$arq)) {
        //Executa o cadastro
        $retorno = $cadastro->execute(); 
        if ($retorno){
            //Enviando email de confirmação de cadastro
            $assunto = "Cadastro realizado";
            $mensagem = "Seu cadastro foi realizado, em breve entraremos em 
contato!
";
            $header = "From: [email protected]";
            mail($email, $assunto, $mensagem, $header);
            header('Location: succes.php');

        } else {
            ini_set("display_errors",1);
            ini_set("display_startup_erros",1);
            error_reporting(E_ALL);
            header('Location: cadastro.php?erro=1');
        }

    } else{
        header('Location: cadastro.php?erro=1');
    } 
?>

Connection to the database via PDO:

<?php

function conectar(){
try{
    $pdo=new PDO("mysql:host=ffgdfgdfgdfgr;dbname=fdgdfg"
    ,"fdgdfg","dfgdfgdfg");
}catch(PDOException $e){
    echo $e->getMessage();
}
    return $pdo;
}

?>
    
asked by anonymous 15.12.2017 / 19:39

1 answer

1

How do we detect your server is not working with php mail ()? There are some alternatives one of them is Mailer () which is a class that uses SMTP request Download MailerPHP

After downloading extract to your directory and call the class in the file you want to send the email

require_once ("class / class.phpmailer.php");

Then just add the following code

// Inicia a classe PHPMailer
$mail = new PHPMailer(true);

// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP


 try {
 $mail->Host = 'smtp.seudominio.com.br'; // Endereço do servidor SMTP (Autenticação, utilize o host smtp.seudomínio.com.br)
 $mail->SMTPAuth   = true;  // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
 $mail->Port       = 587; //  Usar 587 porta SMTP
 $mail->Username = 'usuário de smtp'; // Usuário do servidor SMTP (endereço de email)
 $mail->Password = 'senha de smtp'; // Senha do servidor SMTP (senha do email usado)

 //Define o remetente
 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    
 $mail->SetFrom('[email protected]', 'Nome'); //Seu e-mail
 $mail->AddReplyTo('[email protected]', 'Nome'); //Seu e-mail
 $mail->Subject = 'Assunto';//Assunto do e-mail


 //Define os destinatário(s)
 //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 $mail->AddAddress('[email protected]', 'Teste Locaweb');

 //Campos abaixo são opcionais 
 //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 //$mail->AddCC('[email protected]', 'Destinatario'); // Copia
 //$mail->AddBCC('[email protected]', 'Destinatario2''); // Cópia Oculta
 //$mail->AddAttachment('images/phpmailer.gif');      // Adicionar um anexo


 //Define o corpo do email
 $mail->MsgHTML('corpo do email'); 

 ////Caso queira colocar o conteudo de um arquivo utilize o método abaixo ao invés da mensagem no corpo do e-mail.
 //$mail->MsgHTML(file_get_contents('arquivo.html'));

 $mail->Send();
 echo "Mensagem enviada com sucesso</p>\n";

//caso apresente algum erro é apresentado abaixo com essa exceção.
}catch (phpmailerException $e) {
  echo $e->errorMessage(); //Mensagem de erro costumizada do PHPMailer
}

Remembering that you will need valid email users on the server to use it

    
15.12.2017 / 19:57