Я использую gmail smtp для контактной формы на своем сайте. (PHPMailer script https://github.com/PHPMailer/PHPMailer )
мой код:
<?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"; } ?>
Это работает, но у меня есть две проблемы:
Я установил $mail->SetFrom("another@gmail.com");
но в моем gmail-шоу from: main@gmail.com
Я установил $mail->addReplyTo("another@gmail.com");
но в моем gmail, когда я нажимаю кнопку повторного воспроизведения, вы переигрываете на main@gmail.com
мой код
Google не позволяет отправлять почту от имени другого пользователя [aka «spoof»], если вы явно не разрешены. Если вам не разрешено, он переписывает адрес на адрес отправляющей учетной записи.
Чтобы добавить журнал регистрации в gmail и перейдите в «Настройки»> «Учетные записи»> «Отправить почту как …», когда вы добавляете адрес здесь, gmail отправит сообщение на этот адрес с просьбой подтвердить, чтобы вы могли отправлять почту от их имени.
Я нашел ответ. в Gmail перейдите к
setting ->accounts ->Send mail as
нажмите Добавить другой адрес электронной почты, который у вас есть в новом окне, введите новый адрес электронной почты (например, если ваш gmail – yourmail@gmail.com
вы должны ввести your.mail@gmail.com
) или (если ваш адрес your.mail@gmail.com
имеет точку, вы должны изменить позицию точки Например, если ваш gmail – yo.urmail@gmail.com
вы должны ввести yourma.il@gmail.com
)
не забудьте снять флажок Обработать как псевдоним .
щелкните следующий шаг.
вернуться к setting ->accounts ->Send mail as
внесите новое электронное письмо в качестве недостатка
проверьте Reply from the same address the message was sent to
все сделано!
Я меняю код, используя новые коды.
сейчас показать с моего сайта
теперь, когда вы нажимаете replay botton show replay на адрес электронной почты пользователя
<?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"; } ?>
В конце текста электронной почты проще положить якорь с mailto, например:
<h4><a href="mailto:some@one.com"> Click to answer </a> </h4>
Когда пользователь нажимает на этот якорь, всплывающее окно откроется с правильным адресом электронной почты в поле отправки.