1

我正在尝试发送邮件PHP。我对本地主机和服务器使用相同的代码。但是当我在服务器上使用代码时,它似乎不起作用:

SMTP Error: Could not authenticate. Message was not sent.Mailer error: SMTP Error: Could not authenticate.  

这是我的代码供您参考。

require("class.phpmailer.php"); // path to the PHPMailer class

$mail = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "myname"; // SMTP username
$mail->Password = "password"; // SMTP password

$mail->From = "me@gmail.com";
$mail->AddAddress("sample@gmail.com");

$mail->Subject = "First PHPMailer Message";
$mail->Body = "Hi! \n\n This is my first e-mail sent through PHPMailer.";
$mail->WordWrap = 50;

if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}

我已经做了很多搜索,没有任何弹出。任何帮助将不胜感激。

4

5 回答 5

1

尝试 TLS 和端口 587:

$mail->SMTPSecure = "tls";
$mail->Host       = "smtp.gmail.com";
$mail->Port       = 587;

如您所见,您还可以在 SMTPSecure 变量中指定您想要 SSL 连接,并将主机用作 smtp.gmail.com

也尝试用这个替换$mail->IsSMTP();$mail->Mailer = "smtp";

于 2012-10-09T08:48:05.600 回答
0

只需检查一下它可能会有所帮助:
它是用于 smtp 连接工作的 telnet 吗?在 windows 7 防火墙阻止(默认) smtp 连接所以, http://support.microsoft.com/kb/153119

于 2012-10-09T08:24:32.600 回答
0

一些托管服务提供商,例如 1and1 阻止外发电子邮件端口,例如 25、465 和 587。AFAIK 的唯一解决方案是更改托管服务提供商。

尝试制作一个简单的 php 文件,对您尝试使用的端口执行“fsokopen”,看看是否可行

于 2012-10-10T06:54:18.273 回答
0

这是因为密码包含特殊字符。我尝试在特殊字符之前使用“\”,Password="djgh\^dfgfjk".但它对我没有帮助。
我只是创建没有任何特殊字符的新 ID 和简单密码,而且令人惊讶的是它的工作。
使用不带特殊字符的密码。

于 2012-10-10T07:25:06.500 回答
0

它可能由于各种原因而发生。在我的情况下,它通过改变从

$phpmailer->isSMTP();

$phpmailer->Mailer     = 'smtp';

工作。

于 2017-11-21T11:13:02.520 回答