Implement form, causing the message to be sent directly to my email

2

I have a contact form on my site. It takes information such as name, email, phone and message. However, this data is displayed only in the administration panel of the site itself. I would like that at the time of contact the code would take the email informed by the user and send a message directly to my email!

I tried to use the mail function, but I'm not getting any success! How to do it then?!

I used some of them :: Such as

1st. ::

<?php
    $nome     = $_POST['nome'];     echo $nome; echo "<br>";
    $email    = $_POST['email'];    echo $email; echo "<br>";
    $mensagem = $_POST['mensagem']; echo $mensagem; echo "<br>";
    $corpo  = "Nome: ".$nome."<BR>\n";
    $corpo .= "Email: ".$email."<BR>\n";
    $corpo .= "Mensagem: ".$mensagem."<BR>\n";
    if(mail("[email protected]","Assunto",$corpo)){
      echo("email enviado com sucesso");
    } else {
      echo("Erro ao enviar e-mail");
    }
?>

In this example, it simply returns "error sending email", without further details.

2. ::

<?php
    $email_remetente = "[email protected]";
    $headers = "MIME-Version: 1.1\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
    $headers .= "From: $email_remetente\n"; // remetente
    $headers .= "Return-Path: $email_remetente\n"; // return-path
    $headers .= "Reply-To: $email_usuario\n"; // Endereço (devidamente validado) que o seu usuário informou no contato
    $envio = mail("[email protected]", "Assunto", "Mensagem", $headers, "-f$email_remetente");
?>

The recipient will always be the same - my email - what will change will always be the subject, message and sender.

    
asked by anonymous 30.04.2015 / 22:47

1 answer

2

I use the SMTPMailer class for this purpose (you need at least one GMAIL for this since we will use your SMTP server) I am putting methods that make use of this class (all documented).

PHPMailer download link: link

    /**
    *String que armazena o email de onde partirá os emails (remetente).
    *@var string
    */
    const GUSER = 'email';

    /**
    *String que armazena a senha do email de onde partirá os emails (remetente).
    *@var string
    */
    const GPWD = 'senha';

    /**
    *String que armazena o email para qual as mensagens serão enviadas (destinatário).
    *@var string
    */
    const GSEND = 'teste';


   static function contactUsEmail(){

        $emailRemetente = $_POST['email'];
        $name = $_POST['name'];
        $subject = $_POST['subject'];
        $mensagem = $_POST["message"];
        $corpoMensagem = '<b>CONCTACT US EMAIL</b>'.'<br /><b>Email Remetente: </b>'.$emailRemetente.
        '<br /><b>Nome:</b>'.$name.'<br /><b>Assunto:</b>'.$subject.'<br /><b>Mensagem:</b>'.$mensagem;

        $sendResult = SendEmail::smtpMailer(SendEmail::GSEND, SendEmail::GUSER, $name, $subject, $corpoMensagem);

        if($sendResult === true){
             echo 'Mensagem Enviada com Sucesso';
        }else{
            echo $sendResult;
        }
    }

    function smtpMailer($destinatario, $remetente, $nomeRemetente, $assunto, $corpo){

        /*
        *Objeto que realizará a composição do email com os dados passados como parametros, 
        *armazenara as configurações do servidor SMTP utilizado e todas as outras configurações 
        *e realizará o envio do email.
        *@var PHPMailer object
        */
        $mail = new PHPMailer();

        /**
        *Define o charset do email a ser enviado.
        */
        $mail->CharSet = 'UTF-8';

        /**
        *Ativa SMTP para uso.
        */
        $mail->IsSMTP();

        /**
        *Não exibirá erros e mensagens, outras configurações possiveis: 
        *Debugar: 1 = erros e mensagens, 2 = mensagens apenas.
        */
        $mail->SMTPDebug = 0;

        /**
        *Ativa a autenticação.
        */
        $mail->SMTPAuth = true;

        /**
        *Protocolo utilizado, o gmail (servidor utilizado) requere o uso de tls.
        */
        $mail->SMTPSecure = 'tls';

        /**
        *SMTP utilizado
        */
        $mail->Host = 'smtp.gmail.com';

        /**
        *Porta utilizado para envio de mensagens (ela deverá estar aberta em seu servidor).
        */
        $mail->Port = 587;

        /**
        *Login do usuário utilizado para envio do email (no caso usuário comum do gmail).
        */
        $mail->Username = SendEmail::GUSER;

        /**
        *Senha do login de usuário utilizado para envio do email.
        */
        $mail->Password = SendEmail::GPWD;

        /**
        *Identificação do remetente do email (usuário de email utilizado para envio do 
        *email pelo sistema (logo de propriedade do sistema) e o nome do usuário remetente 
        *(informado na hora da criação do email)) do email.
        */
        $mail->SetFrom($remetente, $nomeRemetente);

        /**
        *Assunto do email.
        */
        $mail->Subject = $assunto;

        /**
        *Corpo do email.
        */
        $mail->Body = $corpo;

        /**
        *Email destinatário do email (de propriedade do sistema).
        */
        $mail->AddAddress($destinatario);

        /**
        *Seta o email como HTML (por padrão ele é text/plain).
        */
        $mail->IsHTML(true);

        $sendResult = $mail->Send();

        if(!$sendResult){
            return "<b>Informações do erro:</b> " . $mail->ErrorInfo;
        }else{
            return true;
        }
    }
    
01.05.2015 / 16:16