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

    Invio mail con allegato "vuoto"

    Ho un piccolo problema con l'invio mail con allegato in PHP.
    Ho utilizzato il tutorial del sito, ma quando mi arriva l'allegato, risulta di 0 byte, praticamente è vuoto. Il nome del file è quello giusto, ma non si riesce ad aprire in quanto vuoto.
    Vi posto il cuore del codice:

    Codice PHP:
    // ASSEGNIAMO A VARIABILI PIU' LEGGIBILI, LE PROPRIETA' DELL'ALLEGATO
    $attach $_FILES["allegato"]["tmp_name"];
    $file_name $_FILES["allegato"]["name"];
    $file_type $_FILES["allegato"]["type"];
    $file_size $_FILES["allegato"]["size"];

    // DELIMITATORE
    $boundary md5(uniqid(microtime()));
    if (
    is_uploaded_file($attach))
    {

    // 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";
    $mail_headers .= "FROM: Contatti DevSpot <$mail>\r\n";
    $mail_headers .= "Return-path: $mail";

    // 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 .= "$testo\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";


            
    if (
    mail($target_mail$oggetto$mail_body$mail_headers))
      print (
    "INVIO CORRETTO");
    else print (
    "ERRORE");



  2. #2
    Ti consiglio di imparare ad utilizzare la classe phpmailer

    http://forum.html.it/forum/showthrea...readid=1215634
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Ho letto la guida e scaricata la classe, ma ho ancora problemi per l'allegato.
    Ho utilizzato questo metodo

    Codice PHP:
    $attach $_FILES["allegato"]["tmp_name"];
    $file_name $_FILES["allegato"]["name"];
    $file_type $_FILES["allegato"]["type"];
    $file_size $_FILES["allegato"]["size"];

    $objmail->AddAttachment($attach); 
    Un allegato arriva, ma non è apribile perchè non ha nè estensione, nè mantiene il nome del file che ho provato ad allegare.
    Il nome che assume è "phpPPWL4G" ed ho notato che la dimensione è quella giusta, quindi magari rinominando il file ed aggiungendo l'estensione giusta, funziona pure, ma sarebbe molto più comodo se l'allegato conservi sia nome che estensione

    Cosa sbaglio?

  4. #4
    Ma il file che vorresti mandare in allegato viene caricato da un form?

    Perchè se è così, lo dovresti prima caricare sul server, e poi allegare...per questo il file che arriva è vuoto...

  5. #5
    si, è un allegato di un FORM. Ho risolto il problema, non c'è bisogno di inviarlo prima nel server. Basta specificare altri valori del metodo.

    Mi è stata molto utile questa guida http://razorblade.netsons.org/2009/0...sse-phpmailer/

    Comunque il metodo completo è

    Codice PHP:
    $mail->AddAttachment($path,$name,$encoding,$type); 
    Spero che possa essere utile per qualcun altro che abbia avuto i miei stessi problemi

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.