簡體   English   中英

PHPMailer無法識別地址

[英]PHPMailer doesn't recognize to address

我正在使用phpmailer將電子郵件發送到存儲在變量$ to中的地址,但這

$mail->AddAddress($to);

導致此錯誤消息

You must provide at least one recipient email address.

我嘗試打印$ to,它會打印出我想要發送消息的正確電子郵件地址。 如果我輸入電子郵件地址而不是$ to,則會發送郵件。 有人可以幫忙嗎? 謝謝!

這是有問題的代碼:

// if the email seller form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST")
{

// retreive the seller's email using his id
$seller_id = $_GET["sellerid"];

// query for the seller's email
$user_query = query("SELECT username FROM users WHERE id = ?", $seller_id);
$to = $user_query[0]["username"];   

// send an email to the seller
require_once("PHPMailer/class.phpmailer.php");

// instantiate mailer
$mail = new PHPMailer();

// use your ISP's SMTP server
$mail->IsSMTP();
$mail->Host = "smtp.fas.harvard.edu";

// set From:
$mail->SetFrom($_POST['buyer_email']);

// set To:
$mail->AddAddress($to);

// set Subject:
$mail->Subject = $_POST['subject'];

// set body
$mail->Body = $_POST['message'];

// set alternative body, in case user's mail client doesn't support HTML
$mail->AltBody = "Please view this message in an HTML-enabled browser.";

// send mail
if ($mail->Send() === false)
    die($mail->ErrorInfo . "\n");

這是查詢功能

    /**
* Executes SQL statement, possibly with parameters, returning
* an array of all rows in result set or false on (non-fatal) error.
*/
function query(/* $sql [, ... ] */)
{
// SQL statement
$sql = func_get_arg(0);

// parameters, if any
$parameters = array_slice(func_get_args(), 1);

// try to connect to database
static $handle;
if (!isset($handle))
{
    try
    {
        // connect to database
        $handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);

        // ensure that PDO::prepare returns false when passed invalid SQL
        $handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
    }
    catch (Exception $e)
    {
        // trigger (big, orange) error
        trigger_error($e->getMessage(), E_USER_ERROR);
        exit;
    }
}

// prepare SQL statement
$statement = $handle->prepare($sql);
if ($statement === false)
{
    // trigger (big, orange) error
    trigger_error($handle->errorInfo()[2], E_USER_ERROR);
    exit;
}

// execute SQL statement
$results = $statement->execute($parameters);

// return result set's rows, if any
if ($results !== false)
{
    return $statement->fetchAll(PDO::FETCH_ASSOC);
}
else
{
    return false;
}

}

確保$to附加了有效的電子郵件。 從外觀上可能是一個用戶名? $to = $user_query[0]["username"];

暫無
暫無

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

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