使用sendmail PHP附加多个文件

使用sendmail PHP附加多个文件,php,file,email,sendmail,attachment,Php,File,Email,Sendmail,Attachment,我正在用sendmail测试mail()函数。我和xampp合作,我的网站在wordpress上。当邮件中没有附加文件时,My mail()函数起作用,但当我尝试在邮件中附加多个文件时,我可以在邮件中看到以下内容: Content-Type: {"application/octet-stream"}; name="/tmp/phpmXXXXX" Content-Disposition: attachment; filename="/tmp/phpmXXXXX" Content-Transfe

我正在用sendmail测试mail()函数。我和xampp合作,我的网站在wordpress上。当邮件中没有附加文件时,My mail()函数起作用,但当我尝试在邮件中附加多个文件时,我可以在邮件中看到以下内容:

Content-Type: {"application/octet-stream"};
 name="/tmp/phpmXXXXX"
Content-Disposition: attachment;
 filename="/tmp/phpmXXXXX"
Content-Transfer-Encoding: base64

JVBERi0xLjUNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFu [etc..]
我正在我的PHP代码中寻找解决方案,其中有关于文件附件的部分:

$files = array(); //Array pour les fichiers
                $filesSize = array(); //Array pour la taille total des fichiers

                $count = count(array_filter($_FILES['fichier']['name'])); //Compte le nombre de fichiers

                for($i=0;$i<$count;$i++){ //boucle sur chaque fichier

                    if($_FILES['fichier']['name'] != ".htaccess"){ //Vérifie que ce n'est pas un .htaccess
                        array_push($files, $_FILES['fichier']['tmp_name'][$i]); //insere le fichier dans l'array $files
                        array_push($filesSize, $_FILES['fichier']['size'][$i]); //insere le fichier dans l'array $filesSize (pour le calcul de la taille total)
                    }

                }



if(isset($_FILES["fichier"]) &&  $_FILES['fichier']['name'] != ""){


                $semi_rand = md5(time());
                $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

                // headers pour les pièces jointes
                $headers .= "MIME-Version: 1.0" . "Content-Type: multipart/mixed;" . " boundary=\"{$mime_boundary}\"";



                // preparation des pièces jointes
                for($x=0;$x<count($files);$x++){
                    $file = fopen($files[$x],"rb");
                    $data = fread($file,filesize($files[$x]));
                    fclose($file);
                    $data = chunk_split(base64_encode($data));
                    $message .= '----------------------------------------------------------' . "\r\n";
                    $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
                    "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
                    "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
                    $message .= "--{$mime_boundary}\n";
                }
            }
$files=array()//菲舍尔酒店
$filesize=array()//菲舍尔总酒店
$count=count(数组_过滤器($_文件['fichier']['name'])//菲舍尔名字全称

对于($i=0;$i您使用PHPMailer的方法是正确的。它使所有这类事情变得更加容易。无需重新发明轮子。在您与bug斗争的时间内,您可以安装PHPMailer并发送电子邮件


我写了很多电子邮件代码只是为了避免使用像PHPMailer这样的库。我总是遇到这样或那样的问题。我不再浪费时间,也没有回头看。

请帮自己一个忙并使用它。我不得不引用另一个人在这个问题上已经说过的话:PHPMailer与tr相比是一个非常容易的选择我想用PHP内置的
mail()
函数自己做。你不需要安装PHPMailer,你只需要它。好的,我明白,开发这种函数对我来说很有意思。那我就试试PHPMailer。谢谢格拉斯先生