簡體   English   中英

通過本地smtp服務器發送電子郵件

[英]Sending email through local smtp server

碼:

<?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';
}
?>

當我運行此代碼時,它表示已發送消息。 但是,當我查看我的電子郵件時,會有一條通知說通過我的代碼發送的電子郵件被退回。

可能出現什么問題? 是我的代碼中的配置還是服務器?

反彈電子郵件的屏幕截圖

對於那些遇到同樣問題的人來說,解決這個問題的是smozgur的答案。

我認為您嘗試通過php發送電子郵件的服務器 - 您的本地服務器 - 無權發送電子郵件並被視為垃圾郵件(就像其他人嘗試使用您的憑據發送電子郵件一樣)。 當我需要讓我的腳本從服務器發送電子郵件時,我將我的服務器IP添加為DNS記錄中的SPF記錄。 這樣,我的電子郵件服務器知道IP正在以我的知識發送電子郵件並允許。 在您的情況下,我認為您可以添加您的IP以暫時解決問題。 但是您也需要稍后為生產服務器IP執行此操作。 如果是這樣的話當然..

我聯系了主管並告訴他電子郵件功能的狀態,即電子郵件正在發送,但郵件服務器將電子郵件返回給發件人。 此外,問題的可能原因,即本地服務器未被授權發送電子郵件並被視為垃圾郵件。 最后,可能的解決方案是將服務器IP添加為DNS記錄中的SPF記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM