Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    58

    [php] Invio allegati per newsletter

    Ciao,
    ho questo form per l'inserimento dell'oggetto, del messaggio e la selezione del file da allegare:

    <form action="sendmail.php" enctype="multipart/form-data" method="POST">
    Oggetto:<input type="text" name="oggetto" size="40">
    Allegato:<input type="file" name="allegato" size="40">
    Messaggio:<textarea name="messaggio" rows="15" cols="50"></textarea>
    <input type="submit" value="Invia la mail">
    </form>


    Questo invece è il file sendmail.php:
    Codice PHP:
    <?
    $contatore 
    0;
    $textfile fopen("db/iscritti.txt""r");
    while ( 
    $rigafile fgets($textfile,1024)) {
    $contatore $contatore 1;
    $campiriga explode("|"$rigafile);
     
    $destinatario $campiriga[2];

    // Recupero il valore dei campi del form 
    $mittente="ciccio@ciccio.it"
    $oggetto stripslashes($_POST['oggetto']); 
    $messaggio $_POST['messaggio'];
    $mess stripslashes($messaggio); 
    $reply="ciccio@ciccio.it"/*Inserire l'indirizzo email a cui verranno inviate le risposte all'email inviata*/ 
    $bcc="panza@ciccio.it.it";

    // Valorizzo le variabili relative all'allegato 
    $titolo "allegato";/*Inserire il nome che si vuole dare all'allegato*/
    $allegato $_FILES['allegato']['tmp_name']; 
    $allegato_type $_FILES['allegato']['type']; 
    $allegato_name $_FILES['allegato']['name']; 
    $filetype="application/pdf"/*Inserire il formato MIME del file da allegare*/ 

    // Creo 2 variabili che riempirò più avanti... 
    $headers "From: " $mittente
    $msg ""

    $intestazioni "From: $mittente\nBCC: $bcc;\nReply-To: $reply\nX-Mailer: Sismail Web Email Interface\nMIME-version: 1.0\nContent-type: multipart/mixed;\n boundary=\"Message-Boundary\"\nContent-transfer-encoding: 7BIT\nX-attachments: $titolo"

    $body_top "--Message-Boundary\n"
    $body_top .= "Content-type: text/html; charset=iso-8859-1\n"
    $body_top .= "Content-transfer-encoding: 7BIT\n"
    $body_top .= "Content-description: Mail message body\n\n"

    $msg_body $body_top $mess


    // Verifico se il file è stato caricato correttamente via HTTP 
    // In caso affermativo proseguo nel lavoro... 
    if (is_uploaded_file($allegato)) 

      
    // Apro e leggo il file allegato 
      
    $file fopen($allegato,'r'); 
      
    $data fread($filefilesize($allegato)); 
      
    fclose($file); 

      
    // Adatto il file al formato MIME base64 usando base64_encode 
      
    $data chunk_split(base64_encode($data)); 

      
    // Genero il "separatore" 
      // Serve per dividere, appunto, le varie parti del messaggio. 
      // Nel nostro caso separerà la parte testuale dall'allegato 
      
    $semi_rand md5(time()); 
      
    $mime_boundary "==Multipart_Boundary_x{$semi_rand}x"
         
      
    // Aggiungo le intestazioni necessarie per l'allegato 
      
    $headers .= "\nMIME-Version: 1.0\n"
      
    $headers .= "Content-Type: multipart/mixed;\n"
      
    $headers .= " boundary=\"{$mime_boundary}\""

      
    // Definisco il tipo di messaggio (MIME/multi-part) 
      
    $msg .= "This is a multi-part message in MIME format.\n\n"

      
    // Metto il separatore 
      
    $msg .= "--{$mime_boundary}\n"

      
    // Questa è la parte "testuale" del messaggio 
      
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"
      
    $msg .= "Content-Transfer-Encoding: 7bit\n\n"
      
    $msg .= $mess "\n\n"

      
    // Metto il separatore 
      
    $msg .= "--{$mime_boundary}\n"

      
    // Aggiungo l'allegato al messaggio 
      
    $msg .= "Content-Disposition: attachment;\n"
      
    $msg .= " filename=\"{$allegato_name}\"\n"
      
    $msg .= "Content-Transfer-Encoding: base64\n\n"
      
    $msg .= $data "\n\n"

      
    // chiudo con il separatore 
      
    $msg .= "--{$mime_boundary}--\n"

    else 

      
    $msg $mess


    // Invio la mail 
    if (mail($destinatario$oggetto$msg$headers)) 

      echo 
    "Invio email a $destinatario
    "

    }else{ 
      echo 
    "

    Errore!</p>"



    }
    fclose($textfile);
    echo 
    "
    Invio di [b]
    $contatore[/b] email terminato con successo";
    ?>
    Questo file un po' l'ho adattato alle mie esigenze perchè dovevo recuperare dei dati da un txt, e poi ho cambiato altre cose perchè così come l'ho trovato nella pillola sul forum non mi funzionava.
    Cmq morale non funziona o meglio, le email le invia correttamente mentre per l'allegato ci sono problemi.
    Ho controllato da un indirizzo di posta di un dominio aruba e lì tutto ok, anche se il nome del file che mi visualizza in basso all'email è text/plain (come si fa per far uscire il nome del file reale?), mentre controllando una casella tiscali esce fuori una cosa strana.
    Mi dice, nell'elenco delle email, che ho un allegato ma quando apro l'email mi esce fuori questo:
    prova
    prova
    prova
    0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAIQAAAAAAAAAA
    EAAA/v///wAAAAD+////AAAAACAAAAD/////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////8J
    CBAAAAYFAKAZzQfJwAAABgMAAOEAAgCwBMEAAgAAAOIAAABcAH AABQAAQmlzaW8gICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE IAAgCwBGEBAgAAAMABAAA9AQYA
    ...etc


    Cosa significa? E soprattutto che devo fare?
    Inoltre mi piacerebbe mettere delle limitazioni all'invio del file si per le estensioni che per la dimensione. Non so perchè ma mi ignora $titolo.
    Grazie anticipatamente a chi abbia voglia di aiutarmi,
    ciao,
    cicileu

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    58
    Buona domenica a tutti.
    Nessuno sa dirmi che cosa succede?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    58
    non ci credo che nessuno sappia darmi nessuna indicazione!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.