我正在使用 PHPMailer 发送邮件。我已在 Google Cloud 虚拟机实例上部署了我的网站
这是我的邮件发送代码
<?php
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new \PHPMailer;
//$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '';
$mail->Password = '';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->isHTML(true);
$mail->addAddress($_POST['email']);
$mail->Subject = "Testing PHPMailer with localhost";
$mail->Body = "Hello, Below are the details of contact ";
$mail->Body = "<table><tr><td>Name:</td><td>".$_POST['name']."</td></tr><tr><td>Email Address:</td><td>".$_POST['email']."</td></tr><tr><td>Subject :</td><td>".$_POST['subject']."</td></tr><tr><td> Message :</td>".$_POST['$POST['msg']."</td></tr></table>";
if(!$mail->Send())
echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";
?>
但是邮件无法发送。谁能帮我吗?如果有人需要,我可以提供进一步的代码参考
答案 0 :(得分:1)
尝试使用 SMTP 发送电子邮件:
$mail->IsSMTP();
$mail->Host = "smtp.example.com";
// optional
// used only when SMTP requires authentication
$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';
答案 1 :(得分:1)
您已注释掉 isSMTP()
,因此您没有使用 SMTP(因此您的 SMTP 设置都不会执行任何操作),而是使用默认的 mail()
传输。这要求您在服务器中安装邮件服务器,而您显然没有安装。
要修复,请按照 chirag 建议安装邮件服务器(postfix 很好)或启用 SMTP。
所有这些都包含在 PHPMailer 故障排除指南中。