• Moderatore

    Buongiorno Fabrizio23,
    se l'email non arriva non può essere a causa dello script di invio.
    Andando nel dettaglio, l'email arriva sempre, a meno che sia sbagliato l'indirizzo del destinatario, ma può essere considerato come spam e quindi filtrato.
    Quindi quello che devi cercare è come avere un server in grado di farsi riconoscere come mittente non spam. Qui si entra nel complesso, però in linea di principio devi controllare che il tuo domain non sia in black list, così come non lo sia l'ip che utilizza, magari condiviso.

    In realtà è una lotta impari, perché puoi comunque venire identificato come spam se gli utenti ti segnalano come tale.


  • User Attivo

    Grazie! 🙂


  • User Attivo

    Ciao!
    Ho aggiunto e modificato:
    [PHP]<?php
    $indirizzo_dest= "mia_mail.libero.it";
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $eta=$_POST['eta'];
    $residenza=$_POST['residenza'];
    $studi=$_POST['studi'];
    $altro=$_POST['altro'];
    $reparto=$_POST['reparto'];
    $anno_laurea=$_POST['anno_laurea'];
    $email=$_POST['email'];
    $messaggio="\n$nome $cognome ($email) - Età: $eta\nCittà di residenza: $residenza\nPercorso di studio: $studi\nAltro: $altro\nUnità operativa: $reparto\nAnno laurea/diploma: $anno_laurea\nE-mail: $email\n";
    print("<font size='5'>Invio E-Mail<br><br /></font>");
    print("<br />Questi sono i dati che hai inserito:<br /><br />
    Destinatario: <b>$indirizzo_dest</b><br />
    Messaggio: <b>$messaggio</b>");
    $header .="From: <$mittente>";
    $messaggio .="";
    if(mail($indirizzo_dest, $nome, $cognome, $eta, $residenza, $studi, $altro, $reparto, $anno_laurea, $email, $messaggio, $header))
    {
    print("<br />Il tuo messaggio è stato inviato con successo!");
    print("<a href='' onClick='javascript:window.close();';><b>Chiudi finestra</b><a/>");
    }
    else
    {
    print("<br />Errore invio E-mail!!<br />Per favore compila tutti i campi");
    }
    ?>[/PHP]
    Mi dà questo warning:

    Warning: mail() expects at most 5 parameters, 12 given in D:\Inetpub\webs\miosito\invio_mail.php on line 20

    Errore invio E-mail!!
    Per favore compila tutti i campi

    La riga 20 è questa:

    [PHP] if(mail($indirizzo_dest, $nome, $cognome, $eta, $residenza, $studi, $altro, $reparto, $anno_laurea, $email, $messaggio, $header))[/PHP]
    Cosa sbaglio? :mmm:
    Grazie! 🙂


  • User Attivo

    La funziona mail accetta 5 parametri, dei quali due sono facoltativi. Tu dai in pasto alla funzione mail 12 parametri! 🙂

    Se conosci l'inglese ti consiglio questa pagina:
    php.net/manual/en/function.mail.php


  • User Attivo

    Capito capito, vedrò, ti ringrazio 🙂


  • User Attivo

    Anche se conosco poco l'inglese 😞


  • User Attivo

    Dovrei mettere questo?

    $mail_sent = @mail( $to, $subject, $message, $headers );


  • ModSenior

    Si da quello che ricordo una possibile firma è questa. 🙂


  • User Attivo

    Il tuo script può funzionare, basta che nella riga 20 sostituisci la funzione mail con:

    mail($indirizzo_dest, $oggetto, $messaggio, $header)

    Definisci però la variabile $oggetto, perché l'ho aggiunta, ma non è nel tuo codice.


  • User Attivo

    Così? la variabile oggetto posso metterla così, giusto?

    [PHP]
    <?php
    $indirizzo_dest= "mia_mail.libero.it";
    $oggetto="";
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $eta=$_POST['eta'];
    $residenza=$_POST['residenza'];
    $studi=$_POST['studi'];
    $altro=$_POST['altro'];
    $reparto=$_POST['reparto'];
    $anno_laurea=$_POST['anno_laurea'];
    $email=$_POST['email'];
    $messaggio="\n$nome $cognome ($email) - Età: $eta\nCittà di residenza: $residenza\nPercorso di studio: $studi\nAltro: $altro\nUnità operativa: $reparto\nAnno laurea/diploma: $anno_laurea\nE-mail: $email\n";
    print("<font size='5'>Invio E-Mail<br><br /></font>");
    print("<br />Questi sono i dati che hai inserito:<br /><br />
    Destinatario: <b>$indirizzo_dest</b><br />
    Messaggio: <b>$messaggio</b>");
    $header .="From: <$mittente>";
    $messaggio .="";
    if(mail($indirizzo_dest, $oggetto, $messaggio, $header)
    ))
    {
    print("<br />Il tuo messaggio è stato inviato con successo!");
    print("<a href='' onClick='javascript:window.close();';><b>Chiudi finestra</b><a/>");
    }
    else
    {
    print("<br />Errore invio E-mail!!<br />Per favore compila tutti i campi");
    }
    ?>
    [/PHP]


  • User Attivo

    Io ci scriverei qualcosa però... E' l'oggetto della mail ed è meglio che non sia vuoto.
    Visto che ci sei potresti metterci un tag tipo "[E-mail dal sito miosito]", così da outlook puoi impostare una regola che ti mette in una cartella apposita le email che hanno all'interno dell'oggetto "[E-mail dal sito miosito]".


  • User Attivo

    Così può andare?

    [php]<?php
    $indirizzo_dest= "mia_mail.libero.it";
    $oggetto=['email_dal_mio_sito'];
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $eta=$_POST['eta'];
    $residenza=$_POST['residenza'];
    $studi=$_POST['studi'];
    $altro=$_POST['altro'];
    $reparto=$_POST['reparto'];
    $anno_laurea=$_POST['anno_laurea'];
    $email=$_POST['email'];
    $messaggio="\n$nome $cognome ($email) - Età: $eta\nCittà di residenza: $residenza\nPercorso di studio: $studi\nAltro: $altro\nUnità operativa: $reparto\nAnno laurea/diploma: $anno_laurea\nE-mail: $email\n";
    print("<font size='5'>Invio E-Mail<br><br /></font>");
    print("<br />Questi sono i dati che hai inserito:<br /><br />
    Destinatario: <b>$indirizzo_dest</b><br />
    Messaggio:Benvenuto nel sito!<b>$messaggio</b>");
    $header .="From: <$mittente>";
    $messaggio .="";
    if(mail($indirizzo_dest, $oggetto, $messaggio, $header)
    ))
    {
    print("<br />Il tuo messaggio è stato inviato con successo!");
    print("<a href='' onClick='javascript:window.close();';><b>Chiudi finestra</b><a/>");
    }
    else
    {
    print("<br />Errore invio E-mail!!<br />Per favore compila tutti i campi");
    }
    ?> [/php]


  • User Attivo

    Potresti usare anche la classe PHPMailer in modo che puoi inviare email contenenti HTML, immagini, allegati e, magari, creare una newsletter per inviare le mail a tutti gli utenti di un database.
    La utilizzo nel mio sito, mi trovo benissimo e la consiglio a tutti.

    Ciao 😃


  • User Attivo

    Ciao Roxas, per ora voglio utilizzare questa. Sai dirmi se è giusta?


  • User Attivo

    Sostituisci $oggetto=['email_dal_mio_sito']; con $oggetto='[email_dal_mio_sito]';

    Poi ad occhio dovrebbe andare...


  • User Attivo

    Grazie, proverò dopo le vacanze, che ora preparo valigie e poi viaaaa! 🙂

    Grazie! 😉