PHPMailer 在我的服务器上不工作
PHPMailer not working in my server
我用 Ubuntu 和 DigitalOcean 构建了一个 Droplet,我正在尝试将其配置为使用 SMTP 发送电子邮件。
我知道 DigitalOcean 会阻止 IPv6 上的 SMTP,但不会阻止 IPv4 上的 SMTP,所以我将 IPv6 禁用为 this post says。
我的脚本仍然无法运行。我试过端口 25、465 和 587。TLS 和 SSL。
我已经为 Ubuntu 14.04 安装了 sendmail
,但无法正常工作。
这是我的脚本:
<?php
require 'mail/PHPMailerAutoload.php';
$mail = new PHPMailer;
$to = $_GET['email'];
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'rafawins@gmail.com';
$mail->Password = '***';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('rafawins@gmail.com', 'Rafael');
$mail->addAddress($to);
$mail->isHTML(true);
$mail->Subject = 'Subject';
$contents = ob_get_contents();
$mail->Body = "ao!";
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
print_r(error_get_last());
?>
出现的错误是:
SMTP connect() failed.
我对使用 SMTP 发送电子邮件 感兴趣,所以需要 ->isSMTP()
!
我哪里错了?
非常感谢。
编辑:
正在做:telnet smtp.gmail.com 587
我得到:
Trying 74.125.133.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP w6sm13897014wjy.31 - gsmtp
并做:openssl s_client -connect smtp.gmail.com:465
我也得到了答案...
怎么了?
注意不要在不同设备上使用 Gmail。 google 不允许并立即阻止帐户在不应该使用的地方使用(当然在 google 眼中)。
在实时服务器上使用 SMTP 发送邮件,执行此操作。
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
并评论 $mail->IsSMTP();
它对我有用....
尝试注释掉第 8 行。
// $mail->isSMTP();
我用 Ubuntu 和 DigitalOcean 构建了一个 Droplet,我正在尝试将其配置为使用 SMTP 发送电子邮件。
我知道 DigitalOcean 会阻止 IPv6 上的 SMTP,但不会阻止 IPv4 上的 SMTP,所以我将 IPv6 禁用为 this post says。
我的脚本仍然无法运行。我试过端口 25、465 和 587。TLS 和 SSL。
我已经为 Ubuntu 14.04 安装了 sendmail
,但无法正常工作。
这是我的脚本:
<?php
require 'mail/PHPMailerAutoload.php';
$mail = new PHPMailer;
$to = $_GET['email'];
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'rafawins@gmail.com';
$mail->Password = '***';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('rafawins@gmail.com', 'Rafael');
$mail->addAddress($to);
$mail->isHTML(true);
$mail->Subject = 'Subject';
$contents = ob_get_contents();
$mail->Body = "ao!";
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
print_r(error_get_last());
?>
出现的错误是:
SMTP connect() failed.
我对使用 SMTP 发送电子邮件 感兴趣,所以需要 ->isSMTP()
!
我哪里错了?
非常感谢。
编辑:
正在做:telnet smtp.gmail.com 587
我得到:
Trying 74.125.133.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP w6sm13897014wjy.31 - gsmtp
并做:openssl s_client -connect smtp.gmail.com:465
我也得到了答案...
怎么了?
注意不要在不同设备上使用 Gmail。 google 不允许并立即阻止帐户在不应该使用的地方使用(当然在 google 眼中)。
在实时服务器上使用 SMTP 发送邮件,执行此操作。
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
并评论 $mail->IsSMTP();
它对我有用....
尝试注释掉第 8 行。
// $mail->isSMTP();