PHPmailer 多个附件只先发送
PHPmailer multiple attachments only sends first
当尝试使用 phpmailer 发送多个文件时,我使用此语句检查是否至少上传了一个文件:
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) or move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile2) or move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile3)) {
并使用此代码附加文件
$mail->AddEmbeddedImage($uploadfile, 'file', 'Uploaded file');
$mail->AddEmbeddedImage($uploadfile2, 'file2', 'Uploaded file 2');
$mail->AddEmbeddedImage($uploadfile3, 'file3', 'Uploaded file 3');
但是它只发送第一个选择的文件,不发送其他可能出现在它之后的文件。看起来 if 语句只要发现条件为真就停止。
有人可以帮助我吗?
事实上...如果语句在第一个条件匹配时停止...所以构建一个新逻辑
例如
<?php
$success = array();
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) $success[] = $uploadfile;
if(move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile2)) $success[] = uploadfile2;
if(move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile3)) $success[] = uploadfile3;
if($success) {
// Your code here
}
请尝试使用 addAttachment 而不是 AddEmbeddedImage。
$mail->addAttachment($uploadfile, 'Uploaded file');
$mail->addAttachment($uploadfile2, 'Uploaded file 2');
$mail->addAttachment($uploadfile3, 'Uploaded file 3');
这与 PHPMailer 无关。;这只是对 PHP.
中表达式求值的基本理解
如果 if
条件的第一部分的结果为真,则无需评估条件的其余部分即可知道它将整体评估为真,因此其他函数永远不会被调用。
分别检查每个文件,它会起作用。
当尝试使用 phpmailer 发送多个文件时,我使用此语句检查是否至少上传了一个文件:
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) or move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile2) or move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile3)) {
并使用此代码附加文件
$mail->AddEmbeddedImage($uploadfile, 'file', 'Uploaded file');
$mail->AddEmbeddedImage($uploadfile2, 'file2', 'Uploaded file 2');
$mail->AddEmbeddedImage($uploadfile3, 'file3', 'Uploaded file 3');
但是它只发送第一个选择的文件,不发送其他可能出现在它之后的文件。看起来 if 语句只要发现条件为真就停止。
有人可以帮助我吗?
事实上...如果语句在第一个条件匹配时停止...所以构建一个新逻辑
例如
<?php
$success = array();
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) $success[] = $uploadfile;
if(move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile2)) $success[] = uploadfile2;
if(move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile3)) $success[] = uploadfile3;
if($success) {
// Your code here
}
请尝试使用 addAttachment 而不是 AddEmbeddedImage。
$mail->addAttachment($uploadfile, 'Uploaded file');
$mail->addAttachment($uploadfile2, 'Uploaded file 2');
$mail->addAttachment($uploadfile3, 'Uploaded file 3');
这与 PHPMailer 无关。;这只是对 PHP.
中表达式求值的基本理解如果 if
条件的第一部分的结果为真,则无需评估条件的其余部分即可知道它将整体评估为真,因此其他函数永远不会被调用。
分别检查每个文件,它会起作用。