PHPMailer - gmail smtp not working properly
email, gmail, php, phpmailer, smtp
Solution
I found my answer. in your Gmail go to
setting ->accounts ->Send mail as
click Add another email address you own in new window enter new email address (example if your gmail is `yourmail@gmail.com` you must enter `your.mail@gmail.com`)or(if your gmail address have dot you must change position of dot. example if your gmail is `yo.urmail@gmail.com` you must enter `yourma.il@gmail.com`) don't forget uncheck Treat as an alias. click next step.
go back to `setting ->accounts ->Send mail as` make a new email as defult check `Reply from the same address the message was sent to` all done! i change code use new codes. now show from my site
now when you click replay botton show replay to user email
<?php
include "classes/class.phpmailer.php"; // include the class name
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 587; // or 587
$mail->IsHTML(true);
$mail->Username = "yourmail@gmail.com";
$mail->Password = "xxxxxxxxx";
$mail->addReplyTo("useremail@gmail.com","user");
$mail->SetFrom("useremail@gmail.com","My Site");
$mail->Subject = "Your Gmail SMTP Mail";
$mail->Body = "Hi, your first SMTP mail via gmail server has been received.";
$mail->AddAddress("yourmail@gmail.com");
if(!$mail->Send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
echo "Message has been sent";
}
?>
Problem
I use gmail smtp for contact form in my site.(PHPMailer script https://github.com/PHPMailer/PHPMailer) my code is: ``` <?php include "classes/class.phpmailer.php"; // include the class name $mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // authentication enabled $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail $mail->Host = "smtp.gmail.com"; $mail->Port = 465; // or 587 $mail->IsHTML(true); $mail->Username = "main@gmail.com"; $mail->Password = "xxxxxxxxxx"; $mail->SetFrom("another@gmail.com"); $mail->addReplyTo("another@gmail.com"); $mail->Subject = "Your Gmail SMTP Mail"; $mail->Body = "Hi, your first SMTP mail via gmail server has been received."; $mail->AddAddress("main@gmail.com"); if(!$mail->Send()){ echo "Mailer Error: " . $mail->ErrorInfo; } else{ echo "Message has been sent"; } ?> ``` It works but i have two problems: I set `$mail->SetFrom("another@gmail.com");` but in my gmail show `from: main@gmail.com` I set `$mail->addReplyTo("another@gmail.com");` but in my gmail when i click replay button email replayed to `main@gmail.com` my code is