PHPMailer不会发送电子邮件
我是一名游戏开发人员,所以我没有任何PHP/网络/后端web开发知识。我整个星期都被这个问题困扰着,在网上没有运气。在PHPMailer之前,我曾尝试在PHP中使用mail()函数,但我对所有的.ini文件感到困惑。我在这个网站上的一个答案中找到了PHPMailer,而且我得到了更多。我严格遵循了本教程,但电子邮件不会发送,调试也不会打印任何内容。我的代码总是返回false并显示我的“无法发送电子邮件”消息PHPMailer不会发送电子邮件,php,email,Php,Email,我是一名游戏开发人员,所以我没有任何PHP/网络/后端web开发知识。我整个星期都被这个问题困扰着,在网上没有运气。在PHPMailer之前,我曾尝试在PHP中使用mail()函数,但我对所有的.ini文件感到困惑。我在这个网站上的一个答案中找到了PHPMailer,而且我得到了更多。我严格遵循了本教程,但电子邮件不会发送,调试也不会打印任何内容。我的代码总是返回false并显示我的“无法发送电子邮件”消息 <?php session_start(); require_once 'PHP
<?php session_start();
require_once 'PHPMailer/PHPMailerAutoLoad.php';
require_once 'PHPMailer/class.phpmailer.php';
$errors=[];
if(isset($_POST['name'], $_POST['twitterHandle'], $_POST['email'], $_POST['description'])) {
$fields = [
'name' => $_POST['name'],
'twitterHandle' => $_POST['twitterHandle'],
'email' => $_POST['email'],
'description' => $_POST['description']
];
foreach($fields as $field => $data){
if(empty($data)){
$errors[] = 'The ' . $field . ' field is required';
}
}
//mail connection if all fields are ! empty
if(empty($errors)){
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPDebug = 1;
$mail->Host = 'smtp.gmail.com';
$mail->Username = '@gmail.com';
$mail->Password = 'pass';
$mail->SMTPSecure = 'ssl';
$mail->Port = 25;
$mail->isHTML;
$mail->Subject = 'subject';
$mail->Body = 'From: ' . $fields['name'] . ' (' . $fields['email'] . ')<p>' . $fields['description'] . '</p>';
$mail->FromName = 'Contact';
$mail->addReplyTo($fields['email'], $fields['name']);
$mail->addAddress('@gmail.com', 'name');
//send email
if($mail->send()){
header('Location: index.php');
die();
}else{
//cannot send
$errors[] = "Sorry, but I could not process your submission. Please try again.";
}
}
} else{
$errors[] = 'Something went wrong';
}
$_SESSION['errors'] = $errors;
$_SESSION['fields'] = $fields;
header('Location: index.php');
?>
我在端口465和25上尝试了SSL,在587上也尝试了TLS。我在网络上转发了465和25,但587无法打开。我的gmail上也启用了IMAP。继续使用tls
2) 。很可能你已经启用了2Factor身份验证,你需要转到你的gmail设置仪表板,允许你的应用程序通过谷歌的身份验证。我也有同样的问题,只有当我在谷歌上修复了这个设置后,问题才得以解决
另外,看看这个答案:-1)。继续使用tls
2) 。很可能你已经启用了2Factor身份验证,你需要转到你的gmail设置仪表板,允许你的应用程序通过谷歌的身份验证。我也有同样的问题,只有当我在谷歌上修复了这个设置后,问题才得以解决
另外,看看这个答案:-不要抛出固定/无用的错误消息。phpmailer可以告诉你哪里出了问题<代码>$errors[]=$mail->ErrorInfo代码>不要发出固定/无用的错误消息。phpmailer可以告诉你哪里出了问题<代码>$errors[]=$mail->ErrorInfo老实说,我现在觉得自己像个白痴。我想几天前我禁用了两步验证,但我可能没有应用我的更改。我回去确认他们被申请了,并且成功了。谢谢。老实说,我现在觉得自己像个白痴。我想几天前我禁用了两步验证,但我可能没有应用我的更改。我回去确认他们被申请了,并且成功了。非常感谢。