我正在开发一个应用程序,该应用程序在注册PHPMailer的激活链接后会向用户发送电子邮件。它可以在localhost上完美运行,但不能实时运行。在线搜索太多解决方案,但没有成功。尝试了以下操作。
1)检查服务器上的开放端口。 telnet
连接成功。
2)安装了ssl
个证书,并尝试了$mail->SMTPSecure = 'ssl';
。也不起作用。
3)同时使用了Gmail和我的(1and1)SMTP服务器。两者都失败了。
4)尝试了$mail->SMTPSecure = 'tls';
和$mail->SMTPSecure = 'ssl';
。都不起作用。
5)在$mail->Password
中使用了普通密码(没有特殊字符)
当我运行PHPMailer的代码时,它不会显示任何错误,并且会不断加载和加载。库路径arr已正确添加(实时运行正常)。整个电子邮件正在正确构建。但是,当我致电$mail->Send();
时,它将永远保持加载状态。如果我对此行发表评论,则页面将正确加载(但由于send()被评论,因此未发送电子邮件)。我的代码如下所示。
require_once '../libs/PHPMailer/src/PHPMailer.php';
require_once '../libs/PHPMailer/src/SMTP.php';
require_once '../libs/PHPMailer/src/Exception.php';
$email = "emailToThisAddress@gmail.com";
$first_name = "first";
$last_name = "last";
$mail = new PHPMailer(true);
//Tell PHPMailer to use SMTP
$mail->isSMTP();
try {
$mail->Host = "auth.smtp.1and1.co.uk";
$mail->SMTPDebug = 4;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->CharSet = 'UTF-8';
$mail->Username = "help@mysite.com";
$mail->Password = "secret";
$mail->addAddress($email, $first_name . " " . $last_name);
$mail->setFrom('help@mysite.com', 'Signup');
$mail->Subject = 'Complete your Sign Up';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$body = HTML_BODY_HERE"";
$mail->MsgHTML($body);
$mail->Send();
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}