【发布时间】:2017-12-18 01:05:24
【问题描述】:
有人用过forest_of_code/PerfectCode 的“Perfect Contact Us Form”吗?
我不断收到错误消息:“糟糕!出了点问题。请检查您的详细信息。”
我一步一步按照编码员的说明进行操作,并多次检查我没有打错任何东西。我也确信我的主机允许通过 SMTP 发送邮件。我正在尝试使用 gmail smtp 发送邮件。我在我的帐户上启用了“允许不太安全的应用程序”,但我没有使用 2AuthFactor。
这些是我当前的设置(XXXX 用于隐藏我的信息,在我的文件中使用我的实际信息):
function smtpContact($to, $subject, $name, $phone, $message){
require_once 'PHPMailer/PHPMailerAutoload.php';
$response = array();
//Create a new PHPMailer instance
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "XXXXXX@gmail.com";
$mail->Password = "xxxxxxxxxxxxx";
$mail->setFrom($to, $name);
$mail->addAddress('XXXXXXXX@gmail.com', 'XXXXX');
$mail->Subject = $subject;
$message = '<div style="background:#F5F5F5; padding:10px;">
<p>'.$message.'</p><br />
<div>Name : '.$name.'</div><br />
<div>Phone : '.$phone.'</div><br />
</div>';
$mail->msgHTML($message);
$mail->AltBody = 'This is a plain-text message body';
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
if (!$mail->send()){
// For Debugging
//return "Mailer Error: " . $mail->ErrorInfo;
$response['error'] = 'Something not right. Please check your details.';
}else{
$response['success'] = 'Your email has been sent successfully.';
}
echo json_encode($response, JSON_PRETTY_PRINT);
}/*...ends[contactus]...*/
【问题讨论】:
-
看起来您拥有的邮件对象具有 ErrorInfo 属性。您可能想从那里开始并获取消息。这会有所帮助。
-
我已经尝试过了,但它给出的只是错误的凭据,我知道事实并非如此。我刚刚偶然发现一篇将近 5 年的帖子,其中提到这条线是问题
$mail->isSMTP();。我删除了它,它工作得很好。一直试图为 daaaaays 找到解决方案 -
是的,在我问了这个问题之后才意识到。我一直在四处寻找并尝试删除此帖子,但我无法在任何地方找到它。我还是新来的,所以我可能需要一点时间才能知道如何删除它
标签: php email contact-form