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网站下载了这个。感谢您的高举。 –