[当用户提交表单时,我试图将联系表单发送给我的gmail,但是当我使用Gmail SMTP服务器时,我没有在Gmail上收到任何电子邮件,我尝试同时使用587端口的tls和465端口的ssl。] >
但是当我使用服务器SMTP时,它可以正常工作,并且我还通过网络服务器收到了电子邮件。代码在这里:
<?php
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->Username = "**********@gmail.com";
$mail->Password = "**********";
$mail->Host = "smtp.gmail.com";
$mail->Mailer = "smtp";
$mail->SetFrom($_POST["userEmail"], $_POST["userName"]);
$mail->AddReplyTo($_POST["userEmail"], $_POST["userName"]);
$mail->AddAddress("**********@gmail.com");
$mail->Subject = "Website Contact Us Form Email";
$mail->WordWrap = 80;
$mail->Body = "User Name: ".$_POST["name"]."<br/><br/>"."User Phone Number: ".$_POST["phone"]."<br/><br/>"."User Email: ".$_POST["email"]."<br/><br/>"."User Message: ".$_POST["message"]."<br/><br/>";
if(is_array($_FILES)) {
$mail->AddAttachment($_FILES['attachmentFile']['tmp_name'],$_FILES['attachmentFile']['name']);
}
$mail->IsHTML(true);
if(!$mail->Send()) {
echo "<p class='error'>Problem in Sending Mail.</p>";
} else {
echo "<p class='success'>Contact Mail Sent.</p>";
}
?>
[当用户提交表单时,我试图将联系表单发送到我的gmail,但是当我使用Gmail SMTP服务器时,我没有在Gmail上收到任何电子邮件,我尝试同时使用587和ssl的tls和...] >
假设您的身份验证凭据正确,这听起来可能是网络问题。您是否已确认防火墙已允许端口587上的出站流量?本地邮件代理可能正在localhost上侦听并将邮件发送回给您。
而且,由于SMTP用于发送邮件,因此我认为发件人地址实际上应与经过身份验证的帐户相同(您是将这封电子邮件发送给自己,而不是从用户的电子邮件帐户发送)。但是,如果您使用的是两个不同的电子邮件,则这并不完全适用。