2012-12-07 2 views
1

를 해결하기 위해 인식하지 않지만,이 오류 메시지가 내가 가진

You must provide at least one recipient email address. 

$mail->AddAddress($to); 

결과 $ 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; 
} 

}

+0

'$ to'을 반향 출력 해 보시고 거기에 이메일 주소가 있는지 확인하셨습니까? 어쨌든 웃음 거리 만? – phpisuber01

+0

예, 시도했지만 올바른 이메일 주소가 나타났습니다. –

+0

일부 메일 서버 설정 일 수 있습니다. 나는 그것들을 두 번 체크 할 것이다. – SeanWM

답변

0

$to이 부착 된 유효한 이메일을 가지고 있는지 확인에게 있습니다 :

문제의 코드입니다. 그것의보기에서 사용자 이름이 있을지도 모르는가? $to = $user_query[0]["username"];

+0

데이터베이스 열 이름은 username이지만 모든 사용자 이름은 전자 메일입니다. 또한 $ to의 값을 인쇄 해 보았습니다. 올바른 전자 메일 주소가 첨부되어 있습니다. –

+0

$ to의 값은 얼마입니까? 단일 전자 메일 또는 여러 전자 메일을 쉼표로 구분하여 표시합니까? – SeanWM

+0

주소가 하나뿐입니다. –

관련 문제