PHP邮件程序可在本地运行,但不适用于实时服务器

时间:2018-07-12 19:03:16

标签: php email

我正在开发一个应用程序,该应用程序在注册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();
}

0 个答案:

没有答案