• User Newbie

    Modulo email

    ciao ragazzi, volevo inserire nel mio sito un modulo per mandare email come quella nella home del sito di giorgiotrave..
    qualcuno sa aiutarmi?
    grazie


  • User Newbie

    diciamo che mi servirebbe per far si che la gente ordini gli articoli (t-shirts,dvd ecc..) immediatamente dalla pagina del sito..ma anche uno simile a quello visto in questo sito andrebbe piu che bene.. 🙂


  • User Newbie

    e per inserire un modulo come quello del sito? 😄


  • User Newbie

    😮
    ok ti ringrazio ora provo a lavorarci!
    molto gentile! 😉


  • Super User

    Ciao benvenuto 🙂

    Ottima la soluzione di Ludus 😉

    comnque per fare una cosa proprio semplice:

    salva questo codice in una pagina chiamata mail.php (o un altro nome da te scelto, l'importante poi è cambiare nell'altro codice il nome)

    <?php
    // ************Inizio Configurazione***************
    //Indirizzo emai a cui inviare i msg
    $mailto = "TUO_INDIRIZZO";
    //Oggetto della mail
    $subject = "OGGETTO DELLA MAIL";
    //Pagina da mostrare dopo l'invio
    $redirect = "URL_PAGINA";
    // ************Fine Configurazione****************
    
    
    foreach&#40;$HTTP_POST_VARS as $key => $value&#41; &#123;
    
    $message .= $key . ': ' . $value;
    $message .= "\n";
    
    &#125;
    if &#40;@mail&#40;$mailto, $subject, $message&#41;&#41; &#123;
    
    header&#40;"Location&#58; $redirect"&#41;;
    &#125; else &#123;
    // Messaggio in caso di errore
    echo&#40;'
    
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>'&#41;;
    &#125;
    ?> 
    

    Nella pagina dove vuoi inserire il modulo dei contatti metti questo:

    
    			<form name="form1" id="form1" method="post" action="mail.php">
    				
    
    Nome</p>
    				
    
    
    					<input type="text" name="nome" />
    				</p>
    				
    
    Cognome</p>
    				
    
    
    					<input type="text" name="cognome" />
    				</p>
    				
    
    Email</p>
    				
    
    
    					<input type="text" name="email" />
    				</p>
    				
    
    Contenuto</p>
    				
    
    
    					<textarea name="contenuto" cols="50" rows="10"></textarea>
    				</p>
    				
    
    
    					<input name="Invia" type="submit" value="Invia" />
    				</p>
    			</form>
    

    è molto semplice (forse troppo), ma puoi anche aggiungere altri campi senza grossi problemi.

    Sposto la discussione in php, che è la sezione più adatta 😉


  • User Attivo

    Scusate l'ignoranza non conosco assolutamente niente di php, ma volevo provare questi moduli, li ho copiati e salvati in php li ho pubblicati ma mi appare una pagina bianca dove sbaglio ?
    Il codice in quale sezione va inserito ?
    Aprendo una nuova pag. nel FrontPage 2003 nella sezione codice mi appare
    questo:
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    </head>

    <body>

    </body>

    </html>

    Tra <body> e <body> forse ?


  • Super User

    @gelova said:

    Tra <body> e <body> forse ?Se ti riferisci al mio script il secondo pezzo si,va nel tag body.

    Il primo invece va in una pagina pulita che chiami mail.php

    :ciauz:


  • User Newbie

    @claudioweb said:

    Se ti riferisci al mio script il secondo pezzo si,va nel tag body.

    Il primo invece va in una pagina pulita che chiami mail.php

    :ciauz:

    Scusami ma il tuo metodo funziona anche in pagine in html? :mmm:


  • Super User

    Ciao shaboo88, benvenuto nel forum 😉

    Per inviare una mail è necessario che il server la spedisca, quindi almeno la seconda pagina (quella che avevo esplicitamente detto di chiamare email.php) deve essere in php e non .html.

    Invece la pagina con il modulo può essere .html.

    Ciao :ciauz:


  • User

    claudio ho fatto così:

    [LEFT]<?php
    // Inizio Configurazione***
    //Indirizzo emai a cui inviare i msg
    $mailto = [EMAIL="[email protected]"][email protected][/EMAIL];
    //Oggetto della mail
    $subject = "servizi";
    //Pagina da mostrare dopo l'invio
    $redirect = "www.paolo-isabella.com";
    // Fine Configurazione****

    foreach($HTTP_POST_VARS as $key => $value) {

    $message .= $key . ': ' . $value;
    $message .= "\n";

    }
    if (@mail($mailto, $subject, $message)) {

    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
    echo('

    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
    }
    ?>

    la pagina la visualizza dopo l'invio ma non mi arriva l'email... quale potrebbe essere il problema? grazie[/LEFT]


  • Super User

    Fammi vedere cosa hai fatto... posta l'indirizzo dalla pagina col modulo :mmm:


  • User

    @claudioweb said:

    Fammi vedere cosa hai fatto... posta l'indirizzo dalla pagina col modulo :mmm:

    ok ...

    ecco il contenuto
    http://www.paolo-isabella.com/prova/

    pagina prova

    http://www.paolo-isabella.com/prova/prova.html


  • User

    Apro una piccolissima parentisi su questo tema.

    Spesso, troppo spesso, si parla di SQL Injection e troppo poco spesso di Email Injection in Italia soprattutto.

    Mentre nel primo caso gli "eventuali" danni li pagate solo sulla vostra pelle (perdita o monipolazione dei dati presenti nel vostro db), nel secondo caso potete anche beccarvi delle belle denunce da parte di terzi per azioni di spam di cui VOI siete responsabili.

    Analizzate meglio il protocollo utilizzato dalle email, insieme ai metodi per manipolarne i destinatari, fatto ciò non avrete più alcuna esitazione ad aggiungere qualcosa del genere nel vostro codice:

    if (eregi("\r",$destinatarioemail) || eregi("\n",$destinatarioemail)) exit;

    Cordialmente
    Alessio


  • Super User

    @diliberto said:

    Apro una piccolissima parentisi su questo tema.

    Spesso, troppo spesso, si parla di SQL Injection e troppo poco spesso di Email Injection in Italia soprattutto.

    Mentre nel primo caso gli "eventuali" danni li pagate solo sulla vostra pelle (perdita o monipolazione dei dati presenti nel vostro db), nel secondo caso potete anche beccarvi delle belle denunce da parte di terzi per azioni di spam di cui VOI siete responsabili.

    Analizzate meglio il protocollo utilizzato dalle email, insieme ai metodi per manipolarne i destinatari, fatto ciò non avrete più alcuna esitazione ad aggiungere qualcosa del genere nel vostro codice:

    if (eregi("\r",$destinatarioemail) || eregi("\n",$destinatarioemail)) exit;

    Cordialmente
    Alessio
    Ciao Alessio :), ma il controllo da te consigliato ritieni sia utile anche nel caso dello script consigliato da me?? Lì la variabile che indica il destinatario è semplicemente una costante assegnata nel file php... :bho:

    Comunque hilary duff sicuro che nel file mail.php hai messo il codice che ho indicato io??? Mi pare strano stampi a video delle righe di testo che non sono proprio presenti...

    [CENTER]Il modulo non è stato inviato per le seguenti ragioni[/CENTER]
    [CENTER] Occorre un indirizzo email valido per continuare ()
    Premere indietro nel browser e riprovare.[/CENTER]

    devi metterci dentro questo

    
    <?php
    // ************Inizio Configurazione***************
    //Indirizzo emai a cui inviare i msg
    $mailto = "TUO_INDIRIZZO";
    //Oggetto della mail
    $subject = "OGGETTO DELLA MAIL";
    //Pagina da mostrare dopo l'invio
    $redirect = "URL_PAGINA";
    // ************Fine Configurazione****************
    
    
    foreach($HTTP_POST_VARS as $key => $value) {
    
    $message .= $key . ': ' . $value;
    $message .= "\n";
    
    }
    if (@mail($mailto, $subject, $message)) {
    
    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
    echo('
    
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
    }
    ?>
    ``` In cui come vedi non ci sono proprio quelle parole :bho:

  • User

    Ciao Claudioweb,

    facendo un' approfondita analisi sull' Email Injection emerge che il tutto si fonda sulla possibilità di inserire un ritorno a capo negli header, aggiungendo altri header a piacere.

    Pensare di filtrare \r e \n risolve il problema alla radice... non mi pare il tuo script abbia questi filtri, come nessuno degli altri presenti in questo thread, da qui il mio intervento.

    Purtroppo molti form con invio di email sono utilizzati come "testa di ponte" da malintenzionati per fare spam senza poter esser rintracciati.

    La questione è che il più delle volte il Webmaster vittima dell' Injection, riesce ad accorgersi del problema solo dopo una denuncia o segnalazione da parte di terzi, e dopo che il suo server ha mandato chissà quante migliaia di email a chissà chi 🙂

    In linea di massima tali sistemi vengono usati per mandare vagonate di email a vagonate di indirizzi diversi; è altamente probabile o quantomeno potrebbe succedere che uno di questi sia errato o inesistente quindi fate attenzione se vi tornavano degli undelivered di email con un mittente diverso dal vostro: è uno dei classici campanelli di allarme.

    Cordialmente
    Alessio

    Edito per aggiungere, rileggendo meglio le tue righe, che una buona conoscenza del protocollo usato per le email, qualche /n e qualche /r il destinatario lo ridefinisci nel corpo della mail ignorando quello da te indicato.
    Spero di esser stato chiaro e aver colmato ulteriori dubbi e perplessità in merito.


  • User

    claudio prova adesso... grazie ^^'


  • Super User

    Diliberto ti ringrazio per avermi fatto scoprire questo problema, che ammetto ingnoravo. 🙂

    Di solito evitavo e sconsigliavo script che si basavano su un indirizzo email del destinatario inserito nell'html, e facilmente falsificabile.
    Ma non avevo mai pensato che qualcuno potesse operare come da te indicato.
    Penso mi leggerò un po' di articoli sull'argomento.

    hilary duff che devo provare, sembrerebbe funzionare o sbaglio?


  • User

    funziona ma non mi arrivano 'email.... 😞


  • Super User

    @hilary duff said:

    funziona ma non mi arrivano 'email.... 😞

    Capisco... ma io he posso fare? Dimmelo tu... 🙂

    Come detto già altre volte, per la veggenza mi sto attrezzando... ma ancora non sono pronto 😄 Che ne so che hai combinato...

    Il codice è quello, e con un copia-incolla dovrebbe funzionare...

    Anzi come detto da Diliberto, funziona fin troppo... nel senso che anche altri potrebbero usarlo per inviare email.

    Prova a verificare che hai personalizzato correttamente l'email. O magari cambia casella di posta. Più di questo non saprei davvero che dirti :bho:


  • User

    ok... cmq grazie.. ti farà sapere... ^^' ciao ps ma dopo quando dovrebbe arrivare l'email? ^^'