php send email using gmail smtp

10,810

You should replace the SMTPSecure value from SSL to TLS. It will resolve your issue connect to the Server and mail was sent. I have tested your code it is working fine.

$mail->SMTPSecure = "tls"; // sets the prefix to the servier //$mail->SMTPSecure = "ssl";

Second Replacement is your replayto email $mail->AddReplyTo($youremail, "Reply to"); //optional You have given $emailpassword it is wrong.

Share:
10,810
Jovo Krneta
Author by

Jovo Krneta

Updated on June 04, 2022

Comments

  • Jovo Krneta
    Jovo Krneta almost 2 years

    I am trying to send email by using Gmail (maybe even Yahoo SMTP ) , I have the following code

    require("class.phpmailer.php");
    
    //ini_set("SMTP","smtp.google.com" ); 
    $smtp=$_GET["smtp"];
    $youremail= $_GET["youremail"];   
    $emailpassword=$_GET["emailpassword"]; 
    $companyemail=$_GET["companyemail"]; 
    $messagetitle= $_GET["messagetitle"];
    $messagetext=$_GET["messagetext"];
    echo "_GET variables dump" ;
    var_dump($smtp);
    var_dump($youremail);
    var_dump($emailpassword);
    var_dump($companyemail);
    var_dump($messagetitle);
    var_dump($messagetext);
    
    //this is a path to PHP mailer class you have dowloaded
    
    //include("class.phpmailer.php");
    
    $emailChunks = explode(",", $companyemail);
    for($i = 0; $i < count($emailChunks); $i++){
    //  echo "Piece $i =  <br />";
    
    
    $mail = new PHPMailer();
    
    $mail->IsSMTP();
    $mail->SMTPDebug  = 1; // errors and messages
    
    
    
    //$mail->SMTPSecure = "tls";                 // sets the prefix to the servier
    $mail->SMTPSecure = "ssl";
    $mail->Port       = 587;  
    
    $mail->Host = $smtp;
    
    $mail->SMTPAuth = true; // turn on SMTP authentication
    
    $mail->Username = $youremail; // SMTP username
    
    $mail->Password = $emailpassword; // SMTP password
    
    $mail->From = $youremail; //do NOT fake header.
    
    $mail->FromName = $youremail;
    
    $adr=$emailChunks[$i];
    $mail->AddAddress($adr); // Email on which you want to send mail
    
    $mail->AddReplyTo($emailpassword, "Reply to"); //optional
    
    $mail->IsHTML(true);
    
    $mail->Subject = $messagetitle;
    
    $mail->Body = $messagetext;
    echo "mail variable dump" ;
    var_dump($mail);
    if(!$mail->Send())
    {
    echo $mail->ErrorInfo;
    }else{
    echo "email was sent";
    
    }
    
    }
    

    When I call the code - I use var_dump for debugging purpose I get

    ALL EMAIL MESSAGES HAVE BEEN  WITH STATUS :_GET variables dumpstring(14) "smtp.gmail.com"
    string(18) "[email protected]"
    string(8) "mypass"
    string(18) "[email protected]"
    string(2) "message subject"
    string(6) "message"
    Invalid address: mypassmail variable dumpobject(PHPMailer)#1 (53) {
      ["Priority"]=>
      int(3)
      ["CharSet"]=>
      string(10) "iso-8859-1"
      ["ContentType"]=>
      string(9) "text/html"
      ["Encoding"]=>
      string(4) "8bit"
      ["ErrorInfo"]=>
      string(25) "Invalid address: mypass"
      ["From"]=>
      string(18) "[email protected]"
      ["FromName"]=>
      string(18) "[email protected]"
      ["Sender"]=>
      string(0) ""
      ["Subject"]=>
      string(2) "ja"
      ["Body"]=>
      string(6) "message"
      ["AltBody"]=>
      string(0) ""
      ["WordWrap"]=>
      int(0)
      ["Mailer"]=>
      string(4) "smtp"
      ["Sendmail"]=>
      string(18) "/usr/sbin/sendmail"
      ["PluginDir"]=>
      string(0) ""
      ["ConfirmReadingTo"]=>
      string(0) ""
      ["Hostname"]=>
      string(0) ""
      ["MessageID"]=>
      string(0) ""
      ["Host"]=>
      string(14) "smtp.gmail.com"
      ["Port"]=>
      int(587)
      ["Helo"]=>
      string(0) ""
      ["SMTPSecure"]=>
      string(3) "ssl"
      ["SMTPAuth"]=>
      bool(true)
      ["Username"]=>
      string(18) "[email protected]"
      ["Password"]=>
      string(8) "mypass"
      ["Timeout"]=>
      int(10)
      ["SMTPDebug"]=>
      int(1)
      ["SMTPKeepAlive"]=>
      bool(false)
      ["SingleTo"]=>
      bool(false)
      ["SingleToArray"]=>
      array(0) {
      }
      ["LE"]=>
      string(1) "
    "
      ["DKIM_selector"]=>
      string(9) "phpmailer"
      ["DKIM_identity"]=>
      string(0) ""
      ["DKIM_domain"]=>
      string(0) ""
      ["DKIM_private"]=>
      string(0) ""
      ["action_function"]=>
      string(0) ""
      ["Version"]=>
      string(3) "5.1"
      ["smtp:private"]=>
      NULL
      ["to:private"]=>
      array(1) {
        [0]=>
        array(2) {
          [0]=>
          string(18) "[email protected]"
          [1]=>
          string(0) ""
        }
      }
      ["cc:private"]=>
      array(0) {
      }
      ["bcc:private"]=>
      array(0) {
      }
      ["ReplyTo:private"]=>
      array(0) {
      }
      ["all_recipients:private"]=>
      array(1) {
        ["[email protected]"]=>
        bool(true)
      }
      ["attachment:private"]=>
      array(0) {
      }
      ["CustomHeader:private"]=>
      array(0) {
      }
      ["message_type:private"]=>
      string(0) ""
      ["boundary:private"]=>
      array(0) {
      }
      ["language:protected"]=>
      array(17) {
        ["provide_address"]=>
        string(54) "You must provide at least one recipient email address."
        ["mailer_not_supported"]=>
        string(25) " mailer is not supported."
        ["execute"]=>
        string(19) "Could not execute: "
        ["instantiate"]=>
        string(36) "Could not instantiate mail function."
        ["authenticate"]=>
        string(35) "SMTP Error: Could not authenticate."
        ["from_failed"]=>
        string(35) "The following From address failed: "
        ["recipients_failed"]=>
        string(45) "SMTP Error: The following recipients failed: "
        ["data_not_accepted"]=>
        string(30) "SMTP Error: Data not accepted."
        ["connect_host"]=>
        string(43) "SMTP Error: Could not connect to SMTP host."
        ["file_access"]=>
        string(23) "Could not access file: "
        ["file_open"]=>
        string(33) "File Error: Could not open file: "
        ["encoding"]=>
        string(18) "Unknown encoding: "
        ["signing"]=>
        string(15) "Signing Error: "
        ["smtp_error"]=>
        string(19) "SMTP server error: "
        ["empty_message"]=>
        string(18) "Message body empty"
        ["invalid_address"]=>
        string(15) "Invalid address"
        ["variable_set"]=>
        string(30) "Cannot set or reset variable: "
      }
      ["error_count:private"]=>
      int(1)
      ["sign_cert_file:private"]=>
      string(0) ""
      ["sign_key_file:private"]=>
      string(0) ""
      ["sign_key_pass:private"]=>
      string(0) ""
      ["exceptions:private"]=>
      bool(false)
    }
    SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
    
    <br />SMTP Error: Could not connect to SMTP host.
    SMTP Error: Could not connect to SMTP host.
    

    And the email send fails !