Email + Fichier attaché vide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Email + Fichier attaché vide

Re: Email + Fichier attaché vide

par kodjo » 23 nov. 2013, 14:04

Bonjour,

Je ne sais pas si tu as trouvé une solution mais puisque tes fichiers attachés sont dans un tableau, tu peux simplement supprimer les fichiers indésirables avant de les passer en pièce jointe. Il y a de nombreuses fonctions PHP qui te permettent de rechercher un nom de fichier ou une extension de fichier, ou encore l'absence d'extension de fichier.

Dans l'exemple que tu as donné, tu peux faire

$mesExtensionsOk = array("jpg","png","gif", "txt");

for($i=0;$i<count($attachments);$i++) {

//séparer chaque nom de fichier en 2 parties avec le . de l'extension
$nomFichier = explode(".", $attachments[$i]);
$extension = $nomFichier[1];

//si l'extension n'est pas dans la liste autorisée..
if (!in_array($extension, $mesExtensionsOk)) {
    unset($attachments[$i]);
}
J'ajoute qu'il peut être bon de contrôler dans ton programme la liste des fichiers autorisés pour qu'un utilisateur ne puisse pas envoyer des fichiers indésirables.

Email + Fichier attaché vide

par sxmfranck » 09 nov. 2013, 14:40

Bonjour,

J'ai un script PhP qui pose problème lors de l'envoi d'email.
On peut soit attacher des fichiers, et la ca marche bien, soit ne pas attacher de fichier et dans ce cas j'ai un fichier vide qui s'attache au mail qui s'appelle "Part 1.2" 0 kbytes

Le pb c'est que certains parefeux bloquent les messages avec ce fichier attaché vide "suspect".

VOila le code PhP : comment éviter l'envoi de ce fichier vide ???
Merci.

$headers .= "Reply-To: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";
$headers .= "This is a multi-part message in MIME format.\n";

$headers .= "--".$strSid."\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "Content-Transfer-Encoding: 7bit\n\n";
$headers .= $message."\n\n";

//*** Attachment ***//
if(count($attachments)>0)
{
for($i=0;$i<count($attachments);$i++){
$strFilesName = $attachments[$i];
$strContent = chunk_split(base64_encode(file_get_contents("up_files/".$strFilesName)));
$headers .= "--".$strSid."\n";
$headers .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";
$headers .= $strContent."\n\n";
}
}

if(mail($to, $subject,null, $headers)){
echo "[message] Mail has been sent! [/message]";