1 回答
TA贡献1817条经验 获得超6个赞
两个关键问题。首先,您使用的是 SMTP,但您还没有设置Host到您的邮件服务器 - 所以它不会工作,除非它localhost- 是这样吗?
您要求 PHPMailer 抛出异常(通过传递true给构造函数),但是您没有在对 PHPMailer 的调用周围包裹 try/catch 块,因此任何错误都将导致未捕获的异常 - 这将给您准确的症状你在看。试试这个:
function email()
{
global $xmlData;
$mail = new PHPMailer(true);
try {
$mail->isHTML(false);
$mail->isSMTP();
$mail->setFrom('XML@gmail.com', 'Yashir CV Lead');
$mail->addAddress("BinaryRx@gmail.com");
$mail->Subject = "Yashir CV Lead";
$mail->Body = $xmlData;
$today = date('d-m-Y H:i:s');
$mail->send();
echo "Report Sent - ".$today;
} catch (Exception $e) {
echo 'Sending failed'.$e->getMessage();
}
}
总的来说,主要的事情是一次调试一件事——email()在开始尝试做依赖于它工作的事情之前检查该函数是否真正独立工作,否则你将不知道代码的哪一部分失败了。
如果您使用的是 PHP 7.0 或更高版本,则可以通过使用null 合并运算符来简化对参数的初始检查。你可以替换这个:
$firstName = isset($_GET['firstName']) ? $_GET['firstName'] : '';
和:
$firstName = $_GET['firstName'] ?? '';
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报