Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466

    File allegato alla mail vuot (0 byte) perchè?

    Sto utilizzando lo script di freephp per alleare file alla mail e spedirla.

    Funziona tutto solo che quando apro l'allegato questo è vyoto, 0 byte, mentre il file che mi viene generato si trova nella sua directory bello e pronto.

    Il nome del file è repA_01_01_2005.html

    Di seguito il cordice:

    La variabile $fileName=repA_01_01_2005.html e $Destinatari gli indirzzi di posta di chi riceve la mail


    Grazie a tutti per l'aiuto.

    Codice PHP:

    <?php 

    function send_mail($fileName,$Destinatari

         
    // ASSEGNIAMO A VARIABILI PIU' LEGGIBILI, LE PROPRIETA' DELL'ALLEGATO 
         
    $attach $fileName
         
    $file_name $fileName
         
    $file_type 'text/html';  
         
    $file_size filesize($fileName); 
         
    $Soggetto="automatic report"
         
         
    // DELIMITATORE 
         
    $boundary md5(uniqid(microtime())); 
         
         
    // APRIAMO L'ALLEGATO PER LEGGERLO E CODIFICARLO 
         
    $file = @fopen($attach"r"); 
         
    $contents = @fread($file$file_size); 
         
    $encoded_attach chunk_split(base64_encode($contents)); 
         @
    fclose($file); 
         
         
    // INTESTAZIONI DELLA MAIL 
         
    $mail_headers .= "MIME-version: 1.0\n"
         
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\""
         
    $mail_headers .= "X-attachments: $file_name\n"
         
         
    // COSTRUIAMO IL CORPO DELLA MAIL 
         
    $mail_body "--$boundary\n"
         
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n"
         
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n"
         
    $mail_body .= "$Contenuto\n\n"
         
    $mail_body .= "--$boundary\n"
         
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";  
         
    $mail_body .= "Content-Transfer-Encoding: base64\n"
         
    $mail_body .= "$encoded_attach\n"
         
    $mail_body .= "--$boundary--\n"
         
         
    // INVIO DELLA MAIL 
        
    @mail($Destinatari$Soggetto$mail_body$mail_headers); 



    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho letto i topic simili a questo che ho trovato ma anche adottando le soluzioni proposte non ho risolto il problema.

    Essenzialmente ho sostituito i \n con \r\n

    e la variabile boundary l' ho messa così:

    $boundary = "<<<:".md5(uniqid(mt_rand(), 1));

    purtroppo continua ad esserci l'allegato vuoto.

    P.S. Usando windows ho pure messo:

    $file = @fopen($attach, "rb");

  3. #3
    Codice PHP:
         // COSTRUIAMO IL CORPO DELLA MAIL 
         
    $mail_body "--$boundary\n";  
         
    $mail_body .=  "Content-type: text/html; charset=iso-8859-1\n";
         
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n";  
         
    $mail_body .= "$Contenuto\n\n";  
         
    $mail_body .= "--$boundary\n";  
         
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";   
         
    $mail_body .= "Content-Transfer-Encoding: base64\n";  
    //   manca questa riga
         
    $mail_body .= "Content-disposition: attachment; filename =\"$file_name\"\n\n";
         
    $mail_body .= "$encoded_attach\n";  
         
    $mail_body .= "--$boundary--\n"
    Manca una riga e inoltre hai la variabile $Contenuto non definita. Si vede che non hai abilitato i NOTICE.....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Grazie piero, non sono più capace manco a fare copia/incolla

    Ciao, Mc

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho praticamente finito.

    Se volessi che a quella mail oltre l'allegato apparisse un messaggio con su scrtitto qualcosa come faccio?

    Grazie, Mc

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Risolto, grazie.

  7. #7
    se posso accordarmi...
    lo script è il medesimo...
    Codice PHP:
    function my_mail($nome_file,$mailto){
    $Destinatario $mailto
    $Soggetto "Iscrizione ad Exalted Italia Chat!"
    $Contenuto "Test email con allegato"

    $attach $nome_file;
    $file_name $nome_file
    $file_type "text/html"
    $file_size filesize($file_name); 

    // DELIMITATORE
    $boundary md5(uniqid(microtime())); 

    // APRIAMO L'ALLEGATO PER LEGGERLO E CODIFICARLO
    $file = @fopen($attach"r"); 
    $contents = @fread($file$file_size); 
    $encoded_attach chunk_split(base64_encode($contents)); 
    @
    fclose($file); 

    // INTESTAZIONI DELLA MAIL
    $mail_headers .= "MIME-version: 1.0\n"
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n"
    $mail_headers .= "Content-transfer-encoding: 7BIT\n"
    $mail_headers .= "X-attachments: $file_name\n"

    // COSTRUIAMO IL CORPO DELLA MAIL
    $mail_body .= "--$boundary\n"
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n"
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n"
    $mail_body .= "$Contenuto\n\n"
    $mail_body .= "--$boundary\n"
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n"
    $mail_body .= "Content-Transfer-Encoding: BASE64\n"
    $mail_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n"
    $mail_body .= "$encoded_attach\n"
    $mail_body .= "--$boundary--\n"

    // INVIO DELLA MAIL
    if(@mail($Destinatario$Soggetto$mail_body$mail_headers)) 

    echo 
    "La mail è stata inoltrata con successo."
    }else{ 
    echo 
    "Si sono verificati dei problemi nell'invio della mail."
    }       

    ma la mail non viene proprio inviata...eppure devo solo allegare un misero file di testo!!! ;(
    idee?
    grazie 1000!
    byeeeeeeeeezzzzzzzzz


    EDIT: Risolto...ora devo inserire un altro indirizzo mail negli header cmq ok ora manda la mail e l'allegato!
    Se volete posto lo script intero con gli headers aggiunti replyto ecc ecc

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.