Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Invio mail con allegati multipli

    Ciao a tutti,

    sto provando a inviare una mail con allegati multipli tramite un form in cui gli allegati vengono caricati tramite

    PHP:
    <input type='file' id='allegati' name='allegati[]' multiple>

    Lo script di invio mail invece è il seguente:

    PHP:
    $allegati = array($_FILES['allegati']['name']);
    $a = '...';
    $da = '...';
    $obj = '...';
    $testo_mail = '...';


    $intestazioni = "From: " . $da;

    $rand = md5(time());
    $boundary = "==Multipart_Boundary_x{$rand}x";

    $intestazioni .= "\nMIME-Version: 1.0\n";
    $intestazioni .= "Content-Type: multipart/mixed;\n";
    $intestazioni .= " boundary=\"{$boundary}\"";

    foreach ($allegati as $allegato){

    $attachment = $allegato;
    $attachment_type = '.jpg';
    $attachment_name = $allegato;

    $file = fopen($attachment,'rb');
    $data = fread($file, filesize($attachment));
    fclose($file);
    $data = chunk_split(base64_encode($data));

    $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= $testo_mail . "\n\n";
    $messaggio .= "--{$boundary}\n";

    $messaggio .= "Content-Disposition: attachment;\n";
    $messaggio .= " filename=\"{$attachment_name}\"\n";
    $messaggio .= "Content-Transfer-Encoding: base64\n\n";
    $messaggio .= $data . "\n\n";
    $messaggio .= "--{$boundary}\n";
    }

    $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= $testo_mail . "\n\n";
    $messaggio .= "--{$boundary}\n";

    if (mail($a, $obj, $messaggio, $intestazioni))
    { ecc. ecc

    La mail viene inviata correttamente, non vengono però caricati gli allegati (che in questo caso sono immagini jpg)

    Come allegati trovo solamente questi 2 file che non contengono nulla.


  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    53
    Momentaneamente il contenuto è conservato in $_FILES['allegati']['tmp_name'] (che nel tuo caso è un array) mentre name è solo il nome.
    https://www.php.net/manual/en/reserv...bles.files.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.