代码:
<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->CharSet="utf-8";
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = '172.17.224.12'; // Specify main and backup SMTP servers
$mail->SMTPAuth = false; // Enable SMTP authentication
//$mail->Username = '***'; // SMTP username
//$mail->Password = '***'; // SMTP password
$mail->SMTPSecure = 'TLS'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25; // TCP port to connect to
$mail->setFrom('itslt@example.com', 'Company.com');
$mail->addReplyTo('itslt@example.com');
$mail->addAddress('dichitslt@example.com'); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$bodyContent = '<h1>How to Send Email using PHP in Localhost by CodexWorld</h1>';
$bodyContent .= '<p>This is the HTML email sent from localhost using PHP script by <b>CodexWorld</b></p>';
$mail->SMTPDebug = 2;
$mail->Subject = 'Email from Localhost by CodexWorld';
$mail->Body = $bodyContent;
if(!$mail->send()) {
echo 'Message could not be sent.<br>';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>
当我运行此代码时,它表示已发送消息。但是,当我查看我的电子邮件时,会有一条通知说通过我的代码发送的电子邮件被退回。
可能出现什么问题?是我的代码中的配置还是服务器?
答案 0 :(得分:0)
对于那些遇到同样问题的人来说,解决这个问题的是smozgur的回答。
我认为你试图通过php发送电子邮件的服务器 - 你的 本地服务器 - 无权发送电子邮件并被视为垃圾邮件 (就像其他人试图使用您的凭据发送电子邮件一样)。 当我需要让我的脚本从服务器发送电子邮件时,我添加 我的服务器IP作为DNS记录中的SPF记录。那样,我的电子邮件 服务器知道IP正在以我的知识发送电子邮件并允许。在 你的情况,我认为你可以添加你的IP暂时解决 问题。但是您需要稍后为生产服务器IP执行此操作 好。如果是这样的话当然..
我联系了主管并告诉他电子邮件功能的状态,即电子邮件正在发送,但邮件服务器将电子邮件返回给发件人。此外,问题的可能原因,即本地服务器未被授权发送电子邮件并被视为垃圾邮件。最后,可能的解决方案是将服务器IP添加为DNS记录中的SPF记录。