PHPMailer $mail->From headers not working with gmail

10,141

With gmail you have to configure an email address as allowed "$mail->from" first. This FAQ entry explains how to do it: https://support.google.com/mail/answer/22370?hl=en

Share:
10,141
HandiworkNYC.com
Author by

HandiworkNYC.com

I make custom WordPress themes http://handiworknyc.com

Updated on June 08, 2022

Comments

  • HandiworkNYC.com
    HandiworkNYC.com almost 2 years

    I'm using the following code to send a mail after a form submission with the PHP mailer class https://github.com/Synchro/PHPMailer. The mail sends and is received successfully. The only thing that isn't wokring is the following:

    $mail->From = $email;
    

    $email is the email that a user will enter on the form (it is set with a $_POST variable). I would like the email to appear that it's from the user who filled out the form, so I can hit reply and have it go to their email address.

    However, the "from" email address is being set as $mail->Username, i.e. the username from the gmail account that the PHPMailer script is sending from.

    enter image description here

    What am I doing wrong here, and how do I get the From email header to work?

    Also, I am using Gmail to receive the mail-- maybe there's a gmail security setting that won't allow the "From" email to be "faked"???

    Thanks!

    $email = $_POST['email'];
    $name = $_POST['moveName'];
    
    require("class.phpmailer.php");
    $mail = new PHPMailer();
    
    $mail->IsSMTP();
    $mail->Host = 'ssl://smtp.gmail.com';
    $mail->Port = 465;
    $mail->SMTPAuth = true;
    $mail->Username = '[email protected]';
    $mail->Password = 'password';
    
    $mail->From = $email;
    $mail->FromName = $name;
    $mail->AddAddress('[email protected]');
    $mail->AddReplyTo($email, $name);
    
    $mail->IsHTML(true);
    
    $mail->Subject = 'Quote Request';
    $mail->Body    = 'hey';
    
    $mail->Send();