簡體   English   中英

使用phpmailer通過smtp發送電子郵件

[英]Sending emails via smtp with phpmailer

我對PHPMailer和SMTP發送郵件有問題。 我寫了這段代碼,但是不適用於我的腳本。 我有兩個版本的郵件程序,第一個版本不使用SMTP,但是我需要使用SMTP。

  1. 沒有SMTP版本。

  2. 第二個版本添加了PHPMailer,但是當我按Submit時,它不發送任何內容,僅在加載時停止:


require_once(dirname(__FILE__).'/../../config.php');
require(dirname("/mail/PHPMailerAutoload.php"); // path to the 
PHPMailerAutoload.php file.

$mail->$fromEmail = NO_REPLY;
$mail->$headers = "MIME-Version: 1.0" . "\r\n";
$mail->$headers .= "Content-Type: text/plain; charset=utf-8" . "\r\n";
$mail->$headers .= "From: ".$fromEmail. "\r\n";
$mail->$subject = $LANG["WBS_REGM_SUBJECT"];
$mail->mail($user_email,$subject,$details,$headers);

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->Host = "localhost";
$mail->Port = "465"; // 8025, 587 and 25 can also be used. Use Port 465 for SSL.
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = "XXXXXXX";
$mail->Password = "XXXXXXXXX";

echo '<div id="mode">1</div>';
    } else {
        echo '<div id="mode">2</div>';
    }
} else {
    echo '<div id="mode">3</div>';
}
}

我將為使用smtp做些什么? 如何解決此錯誤?

您不能使用Web URL包含文件。 您可能要改用本地路徑,然后要求它:

require(dirname(__FILE__) . "/path/to/phpmailer/PHPMailerAutoload.php");

獲取當前包含文件的目錄:

<?php
dirname(__FILE__);
?>

例如,如果文件系統上任意位置包含的名為“ database.init.php”的腳本想要包含位於同一目錄中的腳本“ database.class.php”,則可以使用:

<?php
include_once(dirname(__FILE__) . '/database.class.php');
?>

參考: http : //php.net/manual/en/function.dirname.php

下一步是檢查服務器是否配置為處理SMTP請求。 確保您正在使用的SMTP端口是打開的,並且可以被程序使用。

您的代碼在Web服務器上還是本地? 這可能是個問題!

$mail->Host = 'localhost'

例如,如果您沒有后綴電子郵件服務,則本地代碼可能會出現問題。

mail()

暫無
暫無

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

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