Visualizzazione risultati 1 fino 8 di 8

Discussione: Script per inviare via mail un'immagine

  1. #1
    Guest

    Question Script per inviare via mail un'immagine

    Salve a tutti.

    Vorrei sapere se è possibile inserire uno script nella mia homepage, che permetta ai clienti di inviare una loro foto via mail all'indirizzo impostato nello script, con ovviamente anche la possibilità di inserire del testo.

    Grazie.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,266

    Predefinito

    Cerca su google "inviare email con allegato php". Ecco il primo risultato.

    Ciao!

  3. #3
    Guest

    Predefinito

    Ti ringrazio per la veloce risposta, ma non ci capisco assolutamente niente con codici php o html. Mi mancano le basi fondamentali per poter capire quel codice che mi hai fatto vedere.
    E la spiegazione di quel sito non mi aiuta perché non è adatta al mio livello, che è uguale allo zero...

    Gli ho dato un'occhiata, ma ci sono 2 codici differenti, uno nella prima pagina e uno nella seconda.
    Quale dovrei usare? E in quale punto del codice dovrei inserire il mio indirizzo mail?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Leggere la pagina è troppo difficile?
    La nostra applicazione necessita di due file distinti: un semplice file .html contenente il form ,ed il file .php che svolgerà tutto il lavoro.

  5. #5
    Guest

    Predefinito

    Non è difficile leggere la pagina.. Ma far funzionare quel codice nella mia galleria zenphoto si, almeno per me.

    Quei due codici dove li devo inserire? So che per voi è scontato, ma io non ho mai avuto a che fare con queste cose.

    E facendo di testa mia ho solo paura di combinare casini, come feci una volta...

  6. #6
    Guest

    Predefinito

    Chiedo gentilmente se qualcuno è in grado di aiutarmi.

    Grazie.

  7. #7
    Guest

    Predefinito

    Ho provato a sperimentare da solo ma senza successo, pur avendo messaggio positivo dallo script.. Forse lo script non funziona?

    Per testarlo ho creato 2 pagine, una .html e una .php

    nella pagina .html ho inserito questo codice:
    Codice:
    <form action="formmail.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="mio nome" value="mia@mail">
    <table border="0">
    <tr>
      <td>Tua Mail:</td>
      <td><input type="text" name="mittente" value="" /></td>
    </tr>
    <tr>
      <td>Oggetto:</td>
      <td><input type="text" name="oggetto" value="" /></td>
    </tr>
    <tr>
      <td>Messaggio:</td>
      <td><textarea cols="20" rows="4" name="messaggio"></textarea></td>
      </tr>
    <tr>
      <td>Allega file:</td>
      <td><input type="file" name="allegato" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" value="Invia" /></td>
    </tr>
    </table>
    </form>
    nella pagina .php ho inserito questo codice:
    Codice:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];
    
    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];
    
    // Creo 2 variabili che riempirò più avanti...
    $headers = "From: " . $mittente;
    $msg = "";
    
    // 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,'rb');
      $data = fread($file, filesize($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 .= $messaggio . "\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 = $messaggio;
    }
    
    // Invio la mail
    if (mail($destinatario, $oggetto, $msg, $headers))
    {
      echo "<p>Mail inviata con successo!</p>";
    }else{
      echo "<p>Errore!</p>";
    }
    ?>
    La pagina .php l'ho chiamata "formmail.php" perchè nel codice .html viene chiamata in quel modo quindi credo sia giusto...
    La pagina .html l'ho chiamata "mail.html" credo che il nome qui sia indifferente...

    Ora tutto dovrebbe essere apposto, clicco sulla pagina mail.html e mi visualizza correttamente il modulo per l'invio, metto tutti i campi, seleziono un'immagine di prova, clicco su invio, vedo sotto nel browser il caricamento del file e infine appare il messaggio "Mail inviata con successo!"
    Ma poi andando a controllare la mia posta, non è arrivato niente!

    Dov'è l'errore? Aiutatemi per favore io non so più che fare.

  8. #8
    Guest

    Predefinito

    ragazzi ho risolto, era sbagliato il nome di una variabile...

    ora sapreste dirmi come faccio ad allineare il modulo con la grafica del sito?
    guardate, il modulo è tutto spostato a sinistra, vorrei allinearlo con la grafica del sito, c'è un sistema?

    grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •