我正在使用 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;
}
}