0
<?php
if(isset($_POST['data']) && !empty($_POST['data']) && isset($_POST['email']) && !empty($_POST['email'])) {
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
var_dump($email);
$data = explode(',', $_POST['data']);
mailImages($data);
}
function mailImages($data){
require_once "../PHPMailer_5.2.0/class.phpmailer.php";
$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
try {
$mail->CharSet = 'UTF-8';
$mail->AddReplyTo('[email protected]', 'Colegio Suizo de México');
// $mail->AddAddress('******@****.agency','K L');
//$mail->AddAddress('"'.$email.'"','');
$mail->AddAddress($email,'test');
$mail->SetFrom('*******@********.agency', 'Colegio Suizo de México');
$mail->Subject = 'CSM Fotos';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$mail->MsgHTML('Test message');
foreach($data as $image){
$mail->AddAttachment(realpath(dirname(__FILE__)).'/'.str_replace(' ','',$image));
}
$mail->Send();
echo 'OK';
} catch (phpmailerException $e) {
//echo $e->errorMessage();
echo $mail->ErrorInfo;
} catch (Exception $e) {
echo 'NO';//Boring error messages from anything else!
}
}
?>
所以我的問題是這樣的:我得到一個「無效的地址:」」錯誤,當我註釋此行:
$mail->AddAddress($email,'test');
,並取消本行:
$mail->AddAddress('******@****.agency','K L');
傳遞一個字符串值,工作這麼清楚的問題是,$email
變種。無論如何不被接受。 var_dump輸出:"string(24) "*******@****.com"
所以它是一個字符串。
我已經搜查中已有答案,但沒有找到該特定問題。
任何幫助,非常感謝。
它沒有幫助,您已經基於過時的代碼例如,並使用一個真正的舊版本的PHPMailer。 [獲取最新版本](https://github.com/PHPMailer/PHPMailer)。 – Synchro
^^對。變量'$ email'似乎不在'mailImages()'函數的範圍內。只有'$ data'作爲參數傳遞。 –
@Synchro:我昨天從phpmailer網站下載了這個。感謝您的高舉。 –