3
respostas

Dúvida na hora de mandar o email

Boa noite, estou usando no Laravel PHPMailer, uma dúvida era na maneira de mandar o email.

$mail = new PHPMailer;
        $params = Request::all();
        $titulo = $params['titulo'];
        $nome = $params['nome'];
        $email = $params['email'];
        $mensagem = $params['mensagem'];
//SMTP
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPSecure = 'tls';
        $mail->SMTPAuth = true;
        //Gmail Server
        $mail->Username = "suporteestoquelaravel@gmail.com";
        $mail->Password = "************";
        //Define o remetente
        $mail->setFrom("{$email}","{$nome}");
        //Define os destinatário(s)
        $mail->addAddress("suporteestoquelaravel@gmail.com", "Suporte Laravel");
        //Coloque o título e o corpo da mensagem:
        $mail->Subject = "Email de contato";
        $mail->msgHTML("<html>De: {$nome}<br/>Email: {$email}<br/>Mensagem: {$mensagem}</html>");
        $mail->AltBody = "De: {$nome} \n Email:{$email} \n Mensagem: {$mensagem}";
        $mail->send();

Até aqui ele envia normal o email, problema quando abro o email está diferente.

de:    Yuri Neves <suporteestoquelaravel@gmail.com>NESSA PARTE AQUI NÃO DEVERIA SER O EMAIL QUE MANDEI NO SETFROM?
para:    Suporte Laravel <suporteestoquelaravel@gmail.com>
data:    29 de novembro de 2016 02:14
assunto:    Email de contato
enviado por:    gmail.com
:    Importante principalmente porque foi enviada diretamente para você.

OBS: Estou usando laravel 5.0

3 respostas

O e-mail que você está usando no setFrom vem deste array chamado params que você está lendo no começo da programação.

Se o nome do remetente está como você quer, então o problema é o e-mail que foi definido neste array.

Faça um teste simples para validar se é isto o que está ocorrendo, tente fazer isso:

$mail = new PHPMailer;
        $params = Request::all();
        $titulo = $params['titulo'];
        $nome = $params['nome'];
        $email = $params['email'];
        $mensagem = $params['mensagem'];
    print_r($params);
//Restante do codigo

No caso eu uso laravel dd($params);

array:5 [▼
  "_token" => "3KfLWXLsyuyhHIGnBVQPfW3SJ3Ou9UZrCMZ7BcUz"
  "titulo" => "BOLETOS"
  "nome" => "Yuri Neves"
  "email" => "yurineves92@gmail.com"
  "mensagem" => "Teste"
]

Amigo, tente utilizar AddReplyTo antes do setFrom.