Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: email con allegati

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    24

    email con allegati

    con l aiuto di un libro ho fatto questo script:

    form.html

    <form action="phpemail.php" method="post" enctype="multipart/form-data">



    <label>
    oggetto:<input type="text" name="subject" />
    </label>
    </p>


    inserisci un messaggio e premi Invio:


    <textarea name="message" cols="50" rows="5"></textarea>




    </p>
    <label>
    <input type="file" name="allegato" />
    </label>


    <input type="submit" value="Invio" />
    </form>



    phpemail.php

    <?
    $destinatario = "censura@censura.censura";
    $messaggio = $_REQUEST["message"];
    $subject = $_REQUEST["subject"];
    $oggetto = $_REQUEST["allegato"];
    $attachment_MIME_type = "image/jpeg";
    $handle = fopen($oggetto, "rb");
    $data = fread ($handle, filesize($oggetto));
    fclose($handle);

    $boundary = "---Multipart_Boundary---";

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

    $data = chunk_split(base64_encode($data));

    $text = "--" . $boundary . "\n" .
    "Content-Type:text/plain\nContent-Transfer-Encoding: 7bit\n\n" .
    $messaggio . "\n\n--" . $boundary . "\n" .
    "Content-Type: " . $attachment_MIME_type . ";\n name=\"" .
    $oggetto . "\"\nContent-Transfer-Encoding: base64\n\n" .
    $data . "\n\n--" . $boundary . "--\n";

    $result = @mail($to, $subject, $text, $headers);
    if($result) {
    echo "messaggio inviato con successo";
    } else {
    echo "messaggio non inviato";
    }
    ?>



    mi dice:


    Notice: Undefined index: allegato in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 13

    Warning: fread(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 16

    Warning: fclose(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 17
    messaggio non inviato




    le linee in questione sono:

    line 13: $oggetto = $_REQUEST["allegato"];
    line 16: $data = fread ($handle, filesize($oggetto));
    line 17: fclose($handle);

    dove sbaglio?

  2. #2
    tu hai messo
    Codice PHP:
    fread($handle,filesize($oggetto)); 
    dove $oggetto dovrebbe essere il tuo file, se fosse cosi allora $handle cose'?
    il codice corretto sia in fread che in fclose e'
    Codice PHP:
    fread($oggetto,filesize($oggetto));
    fclose($oggetto); 
    Zend Framework Italian Forum
    http://www.zfforum.it

  3. #3
    Leggi questo tutorial:
    http://www.mrwebmaster.it/tutorial/p...orial497-2.htm
    Cmq credo che il primo errore lo da perché al posto di
    Codice PHP:
    $oggetto $_REQUEST["allegato"]; 
    devi inserire
    Codice PHP:
    $oggetto $_FILE["allegato"]["tmp_name"]; 
    Spero di esserti stato utile

  4. #4
    ops ho detto una bestialita'

    aiphp ha perfettamente raggione, e' il valore passato a fread che e' sbagliato l'handle corriponde invece all' fopen precedentemente aperto e quindi il tuo stream e' corretto

    scusa
    Zend Framework Italian Forum
    http://www.zfforum.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    24
    scusa l ignoranza, "tmp_name" per cosa sta?

  6. #6
    tmp_name e' il nome del fiule quando viene uplodato nella folder tmp, temporanea, quindi praticamente, tu richiami quel file, lo leggi e lo invii come allegato.
    Zend Framework Italian Forum
    http://www.zfforum.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    24
    lo stesso non funziona

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    24
    se lo provo online mi dice "messaggio inviato con successo".

    la mail e l oggetto arrivano

    poi mi si visualizza un insieme di caratteri senza senso per km e km e della foto allegata nemmeno l ombra

  9. #9
    scusa è solo una sottigliezza ma prova a mettere

    Codice PHP:
     if(mail($to$subject$text$headers))
    echo 
    "messaggio inviato con successo";
    else
    echo 
    "messaggio non inviato"
    invece che
    Codice PHP:
    $result = @mail($to$subject$text$headers);
    if(
    $result) {
    echo 
    "messaggio inviato con successo";
    } else {
    echo 
    "messaggio non inviato";

    Comunque sembra strano che tu nn riceva l'allegato, perchè se la funzione mail() fallisce l'errore verrebbe riportato. Se stai inviando il messaggio ad un account hotmail o libero prova a guardare nella cartella Spam/Posta indesiderata...
    Magari anche in altre caselle diverse da Hotmail e Libero...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    24
    la mail la invia

    leggo l oggetto, il testo, e una serie invinita di caratteri senza senso

    io penso che quella serie di caratteri sia la jpeg visualizzata a caratteri, una volta vidi un sito dove, visualizzandolo con firefox, dava lo stesso problema, cioe visualizzava le immagini in testo, ma io non ci capisco nulla.

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.