phpmailer 在本地主机上工作但是当我将它上传到我的 ubuntu 服务器时它给我错误并且邮件没有发送(我正在使用 gmail smtp)
phpmailer working on localhost but when i upload it on my ubuntu server it gives me error and mail is not sending(I am using gmail smtp)
<?php
if(isset($_POST['sendmail'])) {
require 'PHPMailerAutoload.php';
require 'credential.php';
$mail = new PHPMailer;
$mail->SMTPDebug = 4; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = EMAIL; // SMTP username
$mail->Password = PASS; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom(EMAIL, 'litdeveloper');
$mail->addAddress($_POST['email']); // Add a recipient
$mail->addReplyTo(EMAIL);
// print_r($_FILES['file']); exit;
for ($i=0; $i < count($_FILES['file']['tmp_name']) ; $i++) {
$mail->addAttachment($_FILES['file']['tmp_name'][$i], $_FILES['file']['name'][$i]); // Optional name
}
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $_POST['subject'];
$mail->Body = '<div style="border:2px solid red;">This is the HTML message body <b>in bold!</b></div>'.$_POST['message'];
$mail->AltBody = $_POST['message'];
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
}
?>
我如何解决这个错误 我在评论这个 $mail->isSMTP() 之后也尝试过,但它不起作用。
它在 XAMP 上正常工作电子邮件 ID 和密码正确我应该怎么做请帮助我
收到错误消息时最重要的事情是阅读它的内容,所以当它说:
534-5.7.14 Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 g206sm18050557pfb.178 - gsmtp
解决这个问题的方法是使用普通网络浏览器登录到您的 gmail 帐户,如果您想知道他们问您的原因,请遵循 link这样做。
有关其他信息,您应该按照 link 出现在调试输出中的故障排除指南(并且您在此处重新发布了两次!),特别是 this part,它解决了确切的问题你有。
除了您使用的是非常旧版本的 PHPMailer 之外,您的配置和代码看起来是正确的;这不是问题所在。
顺便说一句,您现在应该更改您的 gmail 密码,因为它在您的调试输出中以易于解码的格式显示。
<?php
if(isset($_POST['sendmail'])) {
require 'PHPMailerAutoload.php';
require 'credential.php';
$mail = new PHPMailer;
$mail->SMTPDebug = 4; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = EMAIL; // SMTP username
$mail->Password = PASS; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom(EMAIL, 'litdeveloper');
$mail->addAddress($_POST['email']); // Add a recipient
$mail->addReplyTo(EMAIL);
// print_r($_FILES['file']); exit;
for ($i=0; $i < count($_FILES['file']['tmp_name']) ; $i++) {
$mail->addAttachment($_FILES['file']['tmp_name'][$i], $_FILES['file']['name'][$i]); // Optional name
}
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $_POST['subject'];
$mail->Body = '<div style="border:2px solid red;">This is the HTML message body <b>in bold!</b></div>'.$_POST['message'];
$mail->AltBody = $_POST['message'];
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
}
?>
我如何解决这个错误 我在评论这个 $mail->isSMTP() 之后也尝试过,但它不起作用。 它在 XAMP 上正常工作电子邮件 ID 和密码正确我应该怎么做请帮助我
收到错误消息时最重要的事情是阅读它的内容,所以当它说:
534-5.7.14 Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 g206sm18050557pfb.178 - gsmtp
解决这个问题的方法是使用普通网络浏览器登录到您的 gmail 帐户,如果您想知道他们问您的原因,请遵循 link这样做。
有关其他信息,您应该按照 link 出现在调试输出中的故障排除指南(并且您在此处重新发布了两次!),特别是 this part,它解决了确切的问题你有。
除了您使用的是非常旧版本的 PHPMailer 之外,您的配置和代码看起来是正确的;这不是问题所在。
顺便说一句,您现在应该更改您的 gmail 密码,因为它在您的调试输出中以易于解码的格式显示。