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

Discussione: invio mail

  1. #1

    invio mail

    bene ragazzi, giusto stamattina risolvevo assieme a bstefano dei problemi con il login al sito, poi però mi sono imbattuto in un problema più grande ossia, l'utente che si registra, avrà bisogno se il sito è fatto bene di confermare la propria adesione al sito internet, quindi ho tirato giù grazie anche alle guide di HTML.it il php necessario all'invio della mail, il problema giunge quando inserendo i dati quindi cliccando sul fatidico tastino submit, deve inoltrare la mail con i dati...sbadilandomi codici di errore del tipo:

    Warning: mail() [function.mail]: SMTP server response: Per ulteriori informazioni, vai a: http://aiuto.libero.it/invioposta in C:\Users\Andrea\Downloads\server2go\htdocs\sito\re gistrazione_avvenuta.php on line 140
    Errore durante l'invio dell'e-mail.

    premetto che utilizzo server 2 go e che modificare il file php.ini inserendo l'smtp di libero nel mio caso e l'indirizzo email sempre mio in questo caso non è servito a niente, ho provato ad ovviare utilizzando gli ini_set ma niente... io posto il codice poi se qualche anima pia si avvale della facoltà di indirizzarmi verso la dritta via gliene sarei grato...

    Codice PHP:
    <?php 
    $reg 
    mysql_connect("localhost","root","")or die("cannot connect"); mysql_select_db("sito"$reg)or die("cannot select DB");

    $nome $_POST['name']; 
    $cognome $_POST['surname']; 
    $telefono $_POST['telefono']; 
    $mail $_POST['mail']; 
    $nickname $_POST['nick']; 
    $password1 $_POST['pass1']; 
    $password2 $_POST['pass2']; 
    $gg $_POST['gg']; 
    $mm $_POST['mm']; 
    $aaaa $_POST['aaaa']; 
    $DOB $aaaa.'-'.$mm.'-'.$gg

    function 
    crypt_pass($password2){ 
    return 
    sha1($password2); }

    $reg_crypt_pass crypt_pass($password2);
    $check "SELECT * FROM utenti WHERE nickname = '$nickname' OR password = '$password' "
    $result mysql_query($check) or die (mysql_error());

    if (
    mysql_num_rows($result) != 0) { 
       while (
    $row mysql_fetch_array($result)) { 

    //username già presente nel db
       
    if ($row['nickname'] == $nickname) {
           echo 
    "

    "
    ; echo "L'username, [b]" $row['nickname'] . "[/b] &egrave gi&agrave  
                   in uso da un altro utente, sceglierne uno diverso"

           echo 
    "</p>"; } 

    //email già presente nel db 
       
    if ($row['user_email'] == $_POST['email']) { 
           echo 
    "

    "
    ; echo "La casella E-mail, [b]" $row['user_email'] . "[/b] &egrave 
                     gi&agrave presente nel Data Base, scegliere una diversa"

           echo 
    "</p>"; }
       } 

    //rimandiamo l'utente alla pagina precedente

    echo "

    "

    echo 
    "<a href=\"registrazione.php\">"
    echo 
    "<<< Clicca qui per ritornare alla pagina precedente";
    echo 
    "</a>";
    echo 
    "</p>"
    exit(); 
    }
    //Se invece username e email non sono presenti nel db procediamo con l'inserimanto 

    else { 
      
    $sql="INSERT into utenti  
      (nome,cognome,data_nascita,telefono,e_mail,nickname,password,decrypted_password)
       VALUES('
    $nome','$cognome','$DOB','$telefono','$mail','$nickname','$reg_crypt_pass',
      '
    $password2')"

    //echo $sql."
    ";

      
    $utenti = mysql_query($sql) or die(mysql_error()); 
      
    $id = mysql_insert_id(); // recuperiamo l'id (contenuto nel campo userid) dell'utente 
                                              appena inserito 
    }

     //echo 
    $id

    $temp = gettimeofday();
    $msec = (int) $temp["usec"]
    $msgid = sha1(time() . $msec); 
    $ins = "INSERT INTO confirm (confirm_validatorconfirm_useridVALUES ('$msgid','$id')"; $res = mysql_query($ins) or die(mysql_error()); 

    $to = $_POST['mail']; 
    $toname = $_POST['name']; 
    $subject = "Completa la tua registrazione"; 
    $boundary = "==MP_Bound_xyccr948x=="; 
    $headers = "MIME-Version1.0\r\n"; 
    $headers .= "Content-typemultipart/alternativeboundary=\"$boundary\"\r\n"
    $headers .= "From: [email]typhoon2002@libero.it[/email]\r\n"//inseriamo l'indirizzo email 
                        
    del mittentecioè il nostro 
    $html_msg 
    "<center>"$html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">"$html_msg .= "<tr><td align=\"center\">"
    $html_msg .= "</td></tr>"
    $html_msg .= "<tr><td>Questi sono i dati della tua registrazione:"
    $html_msg .= "</td></tr><tr><td>Username: <font color=\"red\">" $nickname "</font>"$html_msg .= "</td></tr><tr><td>Password: <font color=\"red\">" $password2 "</font>"$html_msg .= "</td></tr><tr><td align=\"center\">"$html_msg .= "</td></tr></table></center>"
    $confirmmessage "Salve" $toname ",\n\n"
    $confirmmessage .= "per completare la tua registrazione devi cliccare sul link sottostante:\n\n";
    $confirmmessage .= $html_msg "\n\n"// Attenzione! Qui sotto dobbiamo inserire il percorso esatto che porta alla nostra pagina confirm_reg.php 
    $confirmmessage .= "<a href=\"http://localhost/percorso pagina confirm_reg.php?id=$msgid\">Clicca qui per confermare la tua registrazione</a>"
    $message "This is a Multipart Message in MIME format\n";
    $message .= "--$boundary\n"
    $message .= "Content-type: text/html; charset=iso-8859-1\n"
    $message .= "Content-Transfer-Encoding: 7bit\n\n"
    $message .= $confirmmessage ."\n"$message .= "--$boundary--"

    $sender_mail "sender mail";
    $server "smtp.libero.it";
    $porta_mail 25;
    setSMTP($server,$sender_mail,$porta_mail); 
       
    function 
    setSMTP($server1 $senderMail1$port) { //Setti indirizzo server SMTP 
    ini_set('SMTP' $server1); //Setti la porta del server 
    ini_set('smtp_port' $port); //indirizzo e-mail del mittente 
    ini_set('sendmail_from' $senderMail1); } 

    $mailsent mail($to$subject$message$headers);

    if (
    $mailsent){ echo "Grazie per esserti registrato, ti auguriamo una buona navigazione sul nostro sito" $toname ",
    "


    echo 
    "Un messaggio &egrave stato inviato all'indirizzo [b]" .$to"[/b] da te fornito.

    "

    echo 
    "IMPORTANTE:
    "
    ;
    echo 
    "Per completare la registrazione al sito devi aprire la tua casella e-mail, leggere il messaggio di conferma e cliccare sul link che troverai all'interno.

    "
    ; } 
    else { 
    echo 
    "Errore durante l'invio dell'e-mail."
    ?>
    premetto che approssimativamente la riga 140 dell'errore è questa:

    Codice PHP:
    $mailsent mail($to$subject$message$headers); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Cosa hai inserito come server smtp?

  3. #3
    smtp.libero.it sia nel file php.ini che nel codice che leggi...

  4. #4
    nessuno saprebbe darmi un'aiutino anche piccolo guardando il codice????

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Mi puoi dire il codice del php ini che hai messo? Quello che definisce il server smtp.

  6. #6
    nel php.ini che in server2go si trova nella cartella server/config_tpl ci sono due parametri da toccare...


    [mail function]
    ; For Win32 only.
    SMTP = smtp.libero.it o del provider....
    ; For Win32 only.
    sendmail_from = indirizzo e-mail tuo
    ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
    ;sendmail_path =

    poi per il resto se hai fortuna funziona altrimenti ti ritorna l'errore che mi è comparso, spero che lo script comunque ti sia utile...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    "smtp.libero.it" ha bisogno di autenticazione, devi usare "mail.libero.it"



  8. #8
    già provato sempre il solito errore della bega

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Allora non ti so aiutare...

    ***PROBLEMI DI CONFIGURAZIONE PIU' COMUNI***

    1. La connessione sicura SSL per il server di posta in uscita non va selezionata. La voce da selezionare è la Richiesta di autenticazione del server di posta in uscita

    2. Il Nome Utente deve essere inserito comprensivo di dominio: se in qualsiasi impostazioni trovare mario.rossi anzichè mario.rossi@libero.it completate l'indirizzo inserendo il dominio @libero.it, @iol.it, @inwind.it, @blu.it

    3. Chi sta configurando una mail non di Libero (es. @tuodominio.com, @virgilio.it) deve continuare ad utilizzare mail.libero.it senza autenticazione oppure deve utilizzare l'smtp indicato dall'email provider (es.Gmail, Yahoo ).

    4. Chi non si connette da Infostrada deve continuare ad utilizzare il server di posta in uscita della connessione utilizzata

    5. Chi ha una Mail Plus può utilizzare smtp.libero.it con richiesta di autenticazione

  10. #10
    già visti, la cosa che mi chiedo adesso è se dal locale, quindi tramite server2go è possibile inviare una mail?!?!?! i parametri del php.ini sono mail.libero.it e sendmail from il mio indirizzo mail...

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.