Filling in sender with email field - PHP Mailer

0

I am using PHP Mailer to send the contact form I have on my site, I would like to know if there is any way in which the contact will be sent already with the completed email address in the form's email field as a sender, to make it easier for me to respond to the customer?

<?php
header('Content-Type: application/json');
date_default_timezone_set('America/Sao_Paulo');

require('class/class.phpmailer.php');

$mail = new PHPMailer();

// Define que a mensagem será SMTP

$mail->IsSMTP();

$mail->Port = 111;

// Host do servidor SMTP

$mail->Host = 'teste.smtp.teste';

// Autenticação | True

$mail->SMTPAuth = true;

$mail->SMTPSecure = false; // Define se é utilizado SSL/TLS - Mantenha o valor "false"
$mail->SMTPAutoTLS = false; // Define se, por padrão, será utilizado TLS - Mantenha o valor "false"

// Usuário do servidor SMTP

$mail->Username = '[email protected]';

// Senha da caixa postal utilizada

$mail->Password = '12345';

// Para quem será enviado

$mail->From = $mail->Username;
$mail->FromName = 'Nome De Quem Esta Enviando';
$mail->AddCC('[email protected]', 'Fulano');


// Define que o e-mail será enviado como HTML | True

$mail->IsHTML(true);

// Charset da mensagem (opcional)

$mail->CharSet = 'utf-8';

// Assunto da mensagem

$mail->Subject = 'OBA! Chegou novo contato do site.';

// Conteúdo no corpo da mensagem

$mail->Body = '
  <table>
    <tr>
      <p>Cliente solicitando contato através do formulário do site.</p>
    </tr>
    <tr>
      <td>Nome: </td>
      <td>' . $_POST['nome'] . '</td>
    </tr>
    <tr>
      <td>Email: </td>
      <td>' . $_POST['email'] . '</td>
    </tr>
    <tr>
      <td>Telefone: </td>
      <td>' . $_POST['fone'] . '</td>
    </tr>
    <tr>
      <td>Cidade do Cliente: </td>
      <td>' . $_POST['cidade'] . '</td>
    </tr>
    <tr>
      <td>Atividade Escolhida: </td>
      <td>' . $_POST['atividade'] . '</td>
    </tr>
    <tr>
      <td>Mensagem: </td>
      <td>' . $_POST['msgcontato'] . '</td>
    </tr>
  </table>
';

// Conteúdo no corpo da mensagem(texto plano)

$mail->AltBody = '
  Cliente solicitando contato através do formulário do site
  Nome: ' . $_POST['nome'] . ',
  Email: ' . $_POST['email'] . ',
  Telefone: ' . $_POST['fone'] . ',
  Cidade: ' . $_POST['cidade'] . ',
  Atividade Escolhida: ' . $_POST['atividade'] . ',
  Mensagem: ' . $_POST['msgcontato'] . '
';

//Envio da Mensagem

$enviado = $mail->Send();

$mail->ClearAllRecipients();

if ($enviado) {
  echo json_encode([
    'ok' => true, 
    'msg' => 'E-mail enviado com sucesso!'
  ]);  
} else {
  echo json_encode([
    'ok' => false, 
    'msg' => 'Não foi possível enviar o e-mail.', 
    'debug' => 'Motivo do erro: ' . $mail->ErrorInfo
  ]);  
}
?>
    
asked by anonymous 06.11.2017 / 18:44

1 answer

0

Replace

$mail->From = $mail->Username;
$mail->FromName = 'Nome De Quem Esta Enviando';

by

//quem está enviando para você
$mail->From = $_POST['email'];
$mail->FromName = $_POST['nome'];

Update to PHPMailer 6

PHPMailer 6 was released at the end of August 2017, bringing many new features and improvements over version 5.

The PHPMailer library can be downloaded from your official website GitHub - PHPMailer

Unzip and publish to a server folder example mailer .

Example - Structure:

  

It is not necessary to publish all uncompressed files and folders, just the ones shown in the figure below

PHPfile

/*******CODIGOEMAIL*******///Essacondiçãovocêfazdojeitoqueacharmelhorif((isset($_POST['$email']))&&(!empty($_POST['$email']))){//métodoPOST$nome=isset($_POST["nome"])?$_POST["nome"]:"[Não Informado]";
   $email= isset($_POST["email"])?$_POST["email"]:"[Não Informado]";
   //outros $_POST vindos do formulário

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

    // Inclui os arquivo localizados na pasta src
    require_once 'src/Exception.php';
    require_once 'src/PHPMailer.php';
    require_once 'src/SMTP.php';

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

    try {
        // Configurações do servidor
        $mail->SMTPDebug = 0; 
        $mail->isSMTP();                                      
        $mail->Host = 'smtp.dominio.com';          // Endereço do servidor SMTP
        $mail->SMTPAuth = true;                   // autenticação SMTP
        $mail->Username = '[email protected]';     // Usuário do servidor SMTP
        $mail->Password = 'secreta';            // Senha da caixa postal utilizada
        $mail->SMTPSecure = 'tls';             // Ativar criptografia TLS, 'ssl' também é aceita
        $mail->Port = 587;                    // TCP port to connect to

        // Define o remetente   
        $mail->setFrom($email, $nome);    // email e nome do remetente


        // Define o(s) destinatário(s)
        $mail->addAddress('[email protected]', 'Nome destinatario');

        // Destinatários abaixo são opcionais 
        //$mail->addAddress('[email protected]');                    // outro destinatario
        //$mail->addReplyTo($email, $nome);                        //aqui você coloca o endereço de quem está enviando a mensagem pela sua página
        //$mail->addCC('[email protected]');                          // Copia
        //$mail->addBCC('[email protected]');                        // Copia oculta

        //Anexos
        //$mail->addAttachment('/var/tmp/file.tar.gz');         // Adicionar um anexo
        //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');   // Nome opcional

        //Content
        $mail->isHTML(true);                                 // true define que o e-mail será enviado como HTML, se false, desativa
        $mail->Subject = 'Digite a assunto aqui';           // Assunto da mensagem

        //Define o corpo do email

        $mail->Body = '
          <table>
            <tr>
              <p>Cliente solicitando contato através do formulário do site.</p>
            </tr>
            <tr>
              <td>Nome: </td>
              <td>' . $_POST['nome'] . '</td>
            </tr>
            <tr>
              <td>Email: </td>
              <td>' . $_POST['email'] . '</td>
            </tr>
            <tr>
              <td>Telefone: </td>
              <td>' . $_POST['fone'] . '</td>
            </tr>
            <tr>
              <td>Cidade do Cliente: </td>
              <td>' . $_POST['cidade'] . '</td>
            </tr>
            <tr>
              <td>Atividade Escolhida: </td>
              <td>' . $_POST['atividade'] . '</td>
            </tr>
            <tr>
              <td>Mensagem: </td>
              <td>' . $_POST['msgcontato'] . '</td>
            </tr>
          </table>
        ';


        $mail->send();
        echo 'E-mail enviado com sucesso!';
    //caso apresente algum erro é apresentado abaixo com essa exceção.
    } catch (Exception $e) {
        echo 'Não foi possível enviar o e-mail.;
        echo 'Erro do Mailer: ' . $mail->ErrorInfo;   //Mensagem de erro do PHPMailer
    }

}
    
06.11.2017 / 23:56