当从网站发送电子邮件时,整个网站崩溃了! 有没有办法使用下面的代码使它作为一个cron作业运行?问题是我不熟悉cron工作,并且发现很难在线找到有效的解决方案。
负责发送邮件的代码:
<?php
define('DB_NAME', 'daniel_login');
define('DB_USER', 'daniel_login');
define('DB_PASSWORD', '#####');
define('DB_HOST', 'localhost');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$conn) {
die('Could not connect: ' . mysqli_connect_error());
}
$recovery = $_POST['recovery'];
$sql = "SELECT * FROM members WHERE username = '$recovery'";
$result=mysqli_query($conn, $sql);
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$mailto = $recovery;
$mailSub = "" . $row['firstname'] . "'s Password Reminder";
$mailMsg = "### CONTENT ###";
$mail->IsSMTP();
$mail ->SMTPDebug = 0;
$mail ->SMTPAuth = true;
$mail ->SMTPSecure = 'ssl';
$mail ->Host = "dev.#####.co.uk";
$mail ->Port = 465; // or 587
$mail ->IsHTML(true);
$mail ->Username = "forgot@dev.#####.co.uk";
$mail ->Password = "#####";
$mail ->SetFrom("forgot@dev.#####.co.uk");
$mail ->Subject = $mailSub;
$mail ->Body = $mailMsg;
$mail ->AddAddress($mailto);
if(!$mail->Send())
{
include 'failed.php';
}
else
{
include 'success.php';
}
}
mysqli_close($conn);
答案 0 :(得分:1)
我知道现在已经一年了,希望能对其他人有所帮助。
我已经在具有不同端口的多台服务器上进行了测试。某些服务器面临网站故障问题。
就我而言,即使每次我们创建新电子邮件时都从CPanel说过,服务器也未设置为端口465
。但是问题是,PHPMailer无法到达xx.xx.xx.xx:465
,因为它是关闭端口。
就我而言,我通过更改为端口587
解决了该问题。但是在此之前,请尝试通过端口25
(默认SMTP端口)发送邮件,以确保您的SMTP服务已启动并准备就绪。
无论哪种方式,您都可以扫描所有服务器端口(与SMTP相关的端口),并查看哪个是可用的。
该网站仅在当前托管帐户上中断,而不会影响其他托管帐户。因此,如果您在“转销商托管”下运行网站,则WHM也会中断,因为您的帐单在同一帐户中。我所做的是,创建另一个托管服务来托管邮件服务,因此,如果邮件托管出现故障,将不会影响转销商/客户帐户。