Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    31

    Inviare email da pagina html

    Salve a tutti. Sto realizzando un sito, e vorrei inserire la possibilità di inviare email al mio indirizzo tramite dei form presenti sulla pagina. Premesso che sono completamente ignorante per quanto riguarda PHP e il suo utilizzo, mi sapreste dare qualche consiglio? Grazie mille a tutti.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se cerchi "form contatti php" su Google trovi una marea di esempi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    31
    Non tanto il form in se, quello su cui mi servirebbe una mano è lo script stesso, ho timore di usare qualcosa di non buono. Grazie

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Che vuol dire "non buono" se funziona è buono, se non funziona no.
    L'invio di un'email non è niente di critico.
    Cerca quello che ti ho detto, ti spiegano come fare entrambe le cose.

  5. #5
    Ho fatto velocemente uno script basico funzionante.

    index.html
    <html>
    <body>
    <form action="invia.php" method="post" id="form_contatti">
    Nome:
    <input type="text" name="nome" required><br>
    Email:
    <input type="email" name="email" required><br>
    Messaggio:<br>
    <textarea name="messaggio" form="form_contatti" required></textarea><br>
    <input type="submit" value="Invia">
    </form>
    </body>
    </html>
    invia.php
    <?php
    //Modifica mail_mittente e mail_destinatario per fare funzionare lo script
    $email_mittente = "email@miosito.it";
    $email_destinatario = "email@email.it";


    //Recupero i dati inviati dal form
    if (isset($_POST['nome'])) {
    $nome = $_POST['nome'];
    }
    if (isset($_POST['email'])) {
    $email = $_POST['email'];
    }
    if (isset($_POST['messaggio'])) {
    $messaggio = $_POST['messaggio'];
    $messaggio = nl2br($messaggio);
    }


    //Semplice controlo presenza dati
    if (!isset($_POST['nome']) or !isset($_POST['email']) or !isset($_POST['messaggio'])) {
    echo "<script>alert('Ricontrolla i dati inseriti');history.go(-1)</script>";
    die;
    }


    //Preparazione mail
    $subject = "Ricevuto messaggio da: $nome";
    $message = "<p>Mitente: $nome ($email)</p> <p>Messaggio:<br> $messaggio</p>";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= "From: $nome <$email_mittente>" . "\r\n";


    //Invio mail
    if (mail($email_destinatario,$subject,$message,$heade rs)) {
    echo "<script>alert('Messaggio inviato correttamente');</script>";
    }
    else {
    echo "<script>alert('Impossibile inviare il messaggio');</script>";
    };


    //(C)CristianLivella.com
    ?>
    Devi soltanto modificare le prime righe del file php.
    In email_mittente inserisci una mail che sia sotto il tuo dominio (per esempio se il tuo sito è prova.com, puoi fare qualsiasicosa@prova.com).
    In email_destinatario inserisci la tua mail dove vuoi ricevere i messaggi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    31
    Grazie mille. Cosi facendo non ho problemi di "sicurezza", ovvero la mail che arrivano dal mio sito non andranno a finire nella spam vero? e se invece volessi che chi invia l'email dal sito usasse la propria email, è una cosa fattibile ? Grazie mille e scusa per le tante domande.

  7. #7
    Io ho sempre utilizzato quel metodo e non ho mai avuto problemi.
    Per la seconda domanda ti devo dire di no.
    In quel caso finirebbe quasi sicuramente nello spam.
    E con alcuni servizi (forse gmail) non arriva nemmeno nello spam

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    112
    Quote Originariamente inviata da olos Visualizza il messaggio
    Salve a tutti. Sto realizzando un sito, e vorrei inserire la possibilità di inviare email al mio indirizzo tramite dei form presenti sulla pagina. Premesso che sono completamente ignorante per quanto riguarda PHP e il suo utilizzo, mi sapreste dare qualche consiglio? Grazie mille a tutti.
    Valuta questa libreria:
    https://sourceforge.net/projects/phpmailer/
    Quello che ti è stato già detto va bene ma è minimale. Non si tiene conto pienamente delle problematiche di sicurezza connesse all'inserimento dei dati via form-module.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    31
    Ho dato una occhiata a phpmailer e sembra ciò che fa per me, mi potreste aiutare a capire come usarla al meglio grazie.

  10. #10
    Ciao, questo un semplice script che permette di inviare una mail con un allegato.
    Questo script è basilare e ha un cron di invio impostato a 50 secondi per evitare di finire in black-list.(basterebbe impostarlo da 19sec in su. Circa 2/3 mail al minuto.).

    PHPmailer è una classe per la gestione dell'invio mail.
    Se hai ben presente il funzionamento di una classe e di php non dovresti avere molti problemi.


    <! DOCTYPE HTML >


    <html lang="en">
    <head>
    <title> Parsing CSV </title>


    <style>
    body{
    font-family:sans-serif;
    color:#424242;
    }




    </style>


    <?
    include_once("ConnessioneArchivio.php");


    $Connessione = new ConnessioneDB("EmporioGomma", "root", "root", "localhost");
    $Connessione->Connessione();


    include_once("PHPmailer/_lib/class.phpmailer.php");
    ?>




    </head>
    <body>


    <div style='border:1px solid #424242; padding-left:2%; border-radius:2px;'>
    <h3> Invio </h3>
    </div>


    <br> <br>


    <?
    $TimeSleep=50;
    $StopSleep=1;

    set_time_limit(0);

    ?>












    <?#CREAZIONE CORPO EMAIL


    $Oggetto="Variazione sede operativa.";





    $Q="SELECT * FROM anagen";
    $E=mysql_query($Q);
    $RecordClienti=mysql_num_rows($E);



    $Contatore = 0;


    if ($E and $RecordClienti > 0){
    while($G = mysql_fetch_array($E)){
    $Id = $G['id_anagen'];
    $Email = $G['email'];




    $Messaggio = new PHPmailer();



    $Messaggio->Host='*********';
    $Messaggio->isHtml(true);
    $Messaggio->Priority='3';



    $Messaggio->FromName='***************';
    $Messaggio->From='****************';
    $Messaggio->AddAddress("$Email");
    $Messaggio->AddReplyTo('**********');
    $Messaggio->Subject=$Oggetto;
    $Messaggio->AddAttachment("Circolare/comunicazione.pdf");




    $Messaggio->Body=stripslashes("

    <! DOCTYPE HTML >

    <html>
    <head>
    <style>
    body{

    font-family:sans-serif;

    }

    </style>

    </head>
    <body>
    <p> In allegato inviamo nostro nuovo indirizzo sede operativa. <br> Cogliamo l'occasione per porgerVi i nostri piu' cordiali saluti. </p>

    <p> ************** </p>

    <body>
    </html>



    ");







    if(!$Messaggio->Send()){

    echo "Errore sull'invio.." . $Messaggio->ErrorInfo;
    exit;

    }else{

    $Contatore = $Contatore + 1;


    $Aggiorno="UPDATE anagen SET inviato='1' WHERE id_anagen = '$Id'";
    $Eseguo=mysql_query($Aggiorno);

    if (!$Eseguo){echo mysql_error(); exit;}


    }









    if ($StopSleep <> $RecordClienti){
    sleep($TimeSleep);
    }


    $StopSleep = $StopSleep + 1;






    }
    }



    $Messaggio->SmtpClose();
    unset($Messaggio);




    echo "Ritardo invio: $TimeSleep sec. <br> Totale e-mail: $RecordClienti. <br> <b> Ho inviato correttamente $Contatore email su $RecordClienti.. </b>";
    ?>




    </body>
    </html>

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.