Registrazione utente su pagina asp

Giuseppe24565

Nuovo Utente
17 Apr 2020
8
0
1
Buongiorno,
sono un bel po' di giorni che sono bloccato sul seguente problema ovvero nel mio script per la registrazione di utenti nel sito lo esegue correttamente solamente su l'utente ha la mail su aruba.it mentre se su altri portali/server mi da ERRORE. Riporto quì di seguito stralcio del mio script:
Codice:
Case "cdosys"

Set objMessage = CreateObject("CDO.Message")

objMessage.Sender = MailOrder

objMessage.TextBody = strMessage

objMessage.To = strRecipientsEmail

objMessage.Subject = strSubject

'On Error Resume Next '## Ignora Errore

objMessage.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/sendusing")=2

'Name or IP of remote SMTP server

objMessage.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/smtpserver") _

="smtp.aruba.it"

'Server port

objMessage.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _

=25

objMessage.Configuration.Fields.Update

objMessage.Send

If Err <> 0 Then

Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"

End if

On Error Resume Next '## Ignora Errore
Spero che qualcuno di voi riesca a darmi un mano perchè non ne esco fuori. Grazie
 
Ultima modifica di un moderatore:
@ Giuseppe24565

Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strumenti
box inserisci.png


Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie


Per questa volta te lo sistemo io ma mi raccomando per il futuro altrimenti sarò costretto a cancellare le discussioni
 
Ciao, Aruba, se non sbaglio, per motivi di sicurezza, permette l'utilizzo del server SMTP sono su un dominio ospitato nella propria web farm. Pertanto lo script da te indicato, funziona perfettamente su un dominio attestato Aruba mentre non funziona su altre web farm.
E' sufficiente cambiare i valori con i parametri imposti dal servizio acquistato:
Codice:
'Name or IP of remote SMTP server
... ="smtp.aruba.it"
'Server port
...=25
Spero di aver capito bene il problema...
 
Ciao, Aruba, se non sbaglio, per motivi di sicurezza, permette l'utilizzo del server SMTP sono su un dominio ospitato nella propria web farm. Pertanto lo script da te indicato, funziona perfettamente su un dominio attestato Aruba mentre non funziona su altre web farm.
E' sufficiente cambiare i valori con i parametri imposti dal servizio acquistato:
Codice:
'Name or IP of remote SMTP server
... ="smtp.aruba.it"
'Server port
...=25
Spero di aver capito bene il problema...
Ciao, innanzitutto grazie per l' interessamento. Ho già impostato i valori indicatomi. Riesco a spedire a tutti i server (alice, libero, etc...) la mail per la conferma dell'iscrizione tranne quelli di gmail (...@gmail). Ti viene in mente qualcos'altro. Grazie
 
Ciao, se lo script spedisce il problema non è nel codice in se per se ma nel settaggio dello stesso.

Sicuramente le email arrivano anche su gmail ma probabilmente vengono spostate il posta indesiderata in quanto considerate spam e questo non va assolutamente bene.

Ricordo che tempo fa mi successe una cosa del genere, gmail spostava le email generate dal sito web che stavo implementando direttamente in posta indesiderata. Da una attenta analisi del codice notai di aver commesso un errore apparentemente innocuo ma effettivamente poteva essere considerato un segnale di spam.

Lo spazio web gestito da Aruba era (nome di esempio) "dominio.it", nello script ASP avevo impostato come mittente "postmaster@sonofigosoloio.it", quindi gmail controllando la provenienza "dominio.it" ed il mittente "...@sonofigosoloio.it" valutava spam tale incongruenza.

Correggendo il mittente in "postmaster@dominio.it" le email arrivavano in "posta in arrivo".

Ti parlo per esperienza personale, tieni conto che le informazioni che hai fornito sino ad ora lasciano molto a desiderare.

Per essere sicuri che la posta giunga al destinatario senza problemi, converrebbe utilizzare l'SMTPS anzichè l'SMTP. Non l'ho ancora mai fatto ma prima o poi conviene migrare, ci sono già numerosi script a tal proposito nel web.

Buona serata.
 
Ciao, se lo script spedisce il problema non è nel codice in se per se ma nel settaggio dello stesso.

Sicuramente le email arrivano anche su gmail ma probabilmente vengono spostate il posta indesiderata in quanto considerate spam e questo non va assolutamente bene.

Ricordo che tempo fa mi successe una cosa del genere, gmail spostava le email generate dal sito web che stavo implementando direttamente in posta indesiderata. Da una attenta analisi del codice notai di aver commesso un errore apparentemente innocuo ma effettivamente poteva essere considerato un segnale di spam.

Lo spazio web gestito da Aruba era (nome di esempio) "dominio.it", nello script ASP avevo impostato come mittente "postmaster@sonofigosoloio.it", quindi gmail controllando la provenienza "dominio.it" ed il mittente "...@sonofigosoloio.it" valutava spam tale incongruenza.

Correggendo il mittente in "postmaster@dominio.it" le email arrivavano in "posta in arrivo".

Ti parlo per esperienza personale, tieni conto che le informazioni che hai fornito sino ad ora lasciano molto a desiderare.

Per essere sicuri che la posta giunga al destinatario senza problemi, converrebbe utilizzare l'SMTPS anzichè l'SMTP. Non l'ho ancora mai fatto ma prima o poi conviene migrare, ci sono già numerosi script a tal proposito nel web.

Buona serata.
Ciao, non capisco come mai sulla mia mail mi arriva la notifica automatica (Delivery Status Notification) dicendomi che la consegna è stata interrotta e mi riporta di seguito l'indirizzo mail (appunto ....@gmail.com) a cui doveva essere spedita. Le prove le sto facendo da mio indirizzo mail del dominio ad un altro sempremio indirizzo ma gmail per verificarne la corretta spedizione. Grazie Buona serata.
 
Ciao, non capisco come mai sulla mia mail mi arriva la notifica automatica (Delivery Status Notification) dicendomi che la consegna è stata interrotta e mi riporta di seguito l'indirizzo mail (appunto ....@gmail.com) a cui doveva essere spedita. Le prove le sto facendo da mio indirizzo mail del dominio ad un altro sempremio indirizzo ma gmail per verificarne la corretta spedizione. Grazie Buona serata.
Ciao Paolo69, ho provato da outlook inviarmi da info@dominio.it a info@gmail.com entrambe presenti sul mio outlook. In questo modo la mail arriva senza problemi. Mentre da mio sito quando viene richiesta la nuova registrazione o recuperare la password mi manda una conferma di errore sulla mia mail del domini.it. Saluti
 
Giuseppe, cerca di essere il più chiaro possibile nell'esposizione del problema. Se leggi il tuo primo post e poi l'ultimo, sembra che stiamo parlando di due cose completamente diverse anche se apparentemente simili.
Pubblicami il codice di tutta la pagina ASP.
 
Giuseppe, cerca di essere il più chiaro possibile nell'esposizione del problema. Se leggi il tuo primo post e poi l'ultimo, sembra che stiamo parlando di due cose completamente diverse anche se apparentemente simili.
Pubblicami il codice di tutta la pagina ASP.
Codice:
<!--#include file="inc_common.asp" -->
<% Server.Execute("header.asp") %>
<%
If Request.QueryString("step") = 2 Then
    Dim str_db_username                'username
    Dim str_wanted_username            'richiesto username
    Dim str_new_usercode            'generare user code
    Dim int_random_number            'numero random
    Dim int_random_number_max        'valore massimo del numero randomico
    Dim int_random_number_min        'valore minimo del numero randomico
    Dim str_password                'password
    Dim rs_new_user                    'Recordsheet per il nuovo utente
    Dim rs_check_username            'Recordsheet per controllare username

    'Richiamo i valori
    str_wanted_username = Request.form("username")
    str_password = Request.form("pw1")

    'Creo una nuova stringa SQL
    strSQL = "SELECT * FROM tbl_authors"

    'Creo un nuovo RecordSet
    set rs_check_username=Server.CreateObject("ADODB.Recordset")

    'Apro il recordset e eseguo SQL
    rs_check_username.Open strSQL,adoCon

    'Eseguo un ciclo fino alla fine
    Do While NOT rs_check_username.EOF
        'Set variable to hold a database username value
        str_db_username = rs_check_username("name")
   
        'See l'username è già inserito nel database response.Redirect("errore.asp")
        If str_db_username = str_wanted_username Then Response.Redirect("errore.asp")
   
        'passo al record successivo
        rs_check_username.MoveNext
    'Loop
    Loop

    rs_check_username.Close
    Set rs_check_username = Nothing

    new_name        = Request.form("username")
    new_email        = Request.form("email")
    new_pass        = Request.form("pw1")
    new_nome        = Request.form("nome")
    new_cognome        = Request.form("cognome")
    new_citta        = Request.form("citta")
    new_provincia    = Request.form("provincia")
    new_cap            = Request.form("cap")
    new_authority    = "user"
    new_date        = Now()
    new_code        = str_new_usercode
    new_pagina_web    = Request.form("pagina_web")
   
    If new_name = "" OR new_email = "" OR new_pass = "" OR new_nome = "" OR new_cognome = "" OR new_citta = "" OR new_cap = "" Then
        emptyValue = True
    Else
        If Request.Form("pw1") <> Request.Form("pw2") Then
            badPass = True
        Else
            badPass = False
        End If
        emptyValue = False
    End If

    If emptyValue = False AND badPass = False Then
        'Creo un numero random
        Randomize
        int_random_number_Min = 1
        int_random_number_Max = 999999999
        int_random_number = Int(((int_random_number_Max-int_random_number_Min+1) * Rnd) + int_random_number_Min)
       
        'converto il numero in una stringa
        int_random_number = Cstr(int_random_number)
   
        'concateno username e il numero random
        str_new_usercode = str_wanted_username + int_random_number
   
        'Creo una nuova stringa SQL
        strsql="SELECT * FROM tbl_authors"
   
        'Creo un nuovo recordset
        set rs_new_user = Server.CreateObject("ADODB.Recordset")
   
        rs_new_user.CursorType = 2
        rs_new_user.LockType = 3
   
        'apro recordsheet e eseguo la stringa SQL
        rs_new_user.open strsql,adocon
   
        'setto recordsheet e aggiungo un nuovo record
        rs_new_user.AddNew
   
        'Enter a new record into the database
        rs_new_user.Fields("name")            = new_name
        rs_new_user.Fields("email")            = new_email
        rs_new_user.Fields("pass")            = new_pass
        rs_new_user.Fields("nome")          = new_nome
        rs_new_user.Fields("cognome")          = new_cognome
        rs_new_user.Fields("citta")            = new_citta
        rs_new_user.Fields("provincia")        = new_provincia
        rs_new_user.Fields("cap")            = new_cap
        rs_new_user.Fields("authority")        = "user"
        rs_new_user.Fields("dataregistrazione")    = Now
        rs_new_user.Fields("code")            = str_new_usercode
        rs_new_user.Fields("pagina_web")    = Request.form("pagina_web")
            If conf_email = "False" Then
            rs_new_user.Fields("stato")    = "Active"
        End If  
   
        'aggiorno il recordset
        rs_new_user.Update
   
        rs_new_user.Close
        set rs_new_user = Nothing
   
        curSubFolders = ""
        tempArray = Split(Replace(Request.ServerVariables("URL"), "\", "/"), "/")
        Dim i
        i = 0
        For each chunk in tempArray
            i = i + 1
        Next
        For j = 0 to (i-2)
            curSubFolders = curSubFolders & tempArray(j) & "/"
        Next

        If conf_email = "True" AND tipoMail <> "None" Then
            MailOrder = "info@miodominio.com" 'Indirizzo mittente ordini
            strSender = MailOrder    
            strFromName            = pageTitle & " All Geo Srl"
            strFromEmail        = adminEmail
            strRecipientsEmail    = new_email
            strRecipientsName    = new_name
            strSubject            = pageTitle & " Registration"
            strMessage            = "------------------------------------------" & vbCrLf & _
            "Grazie per esserti registrato, " & strRecipientsName & "!  Per completare la registrazione, inserisci un indirizzo email valido." & vbCrLf & _
            "Per completare la registrazione, clikka sul seguente indirizzo:" & vbCrLf & _
            "    " & homePage & curSubFolders & "attivo.asp?userCode=" & str_new_usercode & vbCrLf & vbCrLf & _
            "Grazie," & vbCrLf & pageTitle & " All Geo Srl"
   
            Select Case LCase(tipoMail)
                Case "aspemail"
                    Set objNewMail = Server.CreateObject("Persits.MailSender")
                    objNewMail.Host = mailServer
                    objNewMail.FromName = strFromName
                    objNewMail.AddReplyTo strFromEmail
                    objNewMail.From = strFromEmail
                    objNewMail.AddAddress strRecipientsEmail, strRecipientsName
                    objNewMail.Subject = strSubject
                    objNewMail.Body = strMessage
                    On Error Resume Next '## Ignora Errore
                    objNewMail.Send
                    If Err <> 0 Then
                        Err_Msg = Err_Msg & "<li>Impossibile spedire l'email: " & Err.Description & "</li>"
                    End if
                Case "aspmail"
                    Set objNewMail = Server.CreateObject("SMTPsvg.Mailer")
                    objNewMail.FromName = strFromName
                    objNewMail.FromAddress = strFromEmail
                    'objNewMail.AddReplyTo = strFromEmail
                    objNewMail.RemoteHost = mailServer
                    objNewMail.AddRecipient strRecipientsName, strRecipientsEmail
                    objNewMail.Subject = strSubject
                    objNewMail.BodyText = strMessage
                    On Error Resume Next '## Ignora Errore
                    SendOk = objNewMail.SendMail
                    If not(SendOk) <> 0 Then
                        Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & objNewMail.Response & "</li>"
                    End if
                Case "cdonts"
                    Set objNewMail = Server.CreateObject ("CDONTS.NewMail")
                    objNewMail.BodyFormat = 1
                    objNewMail.MailFormat = 0
                    On Error Resume Next '## Ignora Errore
                    objNewMail.Send strFromEmail, strRecipientsEmail, strSubject, strMessage
                    If Err <> 0 Then
                        Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                    End if
                    On Error Resume Next '## Ignora Errore

            Case "cdosys"
                Set objMessage = CreateObject("CDO.Message")
                 objMessage.Sender  = MailOrder
                objMessage.TextBody = strMessage
                objMessage.To = strRecipientsEmail
                objMessage.Subject = strSubject
            '    On Error Resume Next '## Ignora Errore
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
                'Name or IP of remote SMTP server
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
                ="smtp.aruba.it"
                'Server port
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _
                =25
                objMessage.Configuration.Fields.Update          
                objMessage.Send
                If Err <> 0 Then
                Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                End if
               On Error Resume Next '## Ignora Errore
               
            End Select
            Set objNewMail = Nothing
            On Error Goto 0
   
           
            Response.Redirect("paginadibenvenuto.asp")
        Else
            Session("tmpUN") = new_name
            Response.Redirect("login.asp?disp=login")
        End If
    End If
End If
%>
<!doctype html public "-//w3c//dtd html 3.2//en"><html>


</script>
 
Vedi Paolo69, come cerco di far capire è che il codice presumo sia corretto ma il problema è che se un nuovo utente si registra con una gmail il codice non manda la richiesta di conferma della registrazione. Solo a quelle con gmail.
 
Sostituisci:
Codice:
            Case "cdosys"
                Set objMessage = CreateObject("CDO.Message")
                 objMessage.Sender  = MailOrder
                objMessage.TextBody = strMessage
                objMessage.To = strRecipientsEmail
                objMessage.Subject = strSubject
            '    On Error Resume Next '## Ignora Errore
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
                'Name or IP of remote SMTP server
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
                ="smtp.aruba.it"
                'Server port
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _
                =25
                objMessage.Configuration.Fields.Update          
                objMessage.Send
                If Err <> 0 Then
                Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                End if
               On Error Resume Next '## Ignora Errore
               
            End Select

con questo:

Codice:
            Case "cdosys"
                
            ' -------------                
                    Set objMail = Server.CreateObject("CDO.Message") 
                    Set objConfig = Server.createObject("CDO.Configuration") 
                    With objConfig 
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "smtp.aruba.it"
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")= 25
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
                        .Fields.Update
                    End With 
                
                    Set objMail.Configuration     = objConfig ' Assegna le configurazioni
                        objMail.From            = strSender ' Mittente dell'email (indirizzo)
                        objMail.To                 = strRecipientsEmail ' Destinatario dell'email (indirizzo) 
                        objMail.Subject         = strSubject ' Oggetto dell'email
                        objMail.HTMLBody         = strMessage ' Corpo del messaggio Formato HTML 
                        objMail.Send()             ' Invia l'email 
                    Set objMail = Nothing 
            ' -------------                

                If Err <> 0 Then
                Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                End if
               On Error Resume Next '## Ignora Errore
               
            End Select

Prova e fammi sapere che errore ti da.
 
Sostituisci:
Codice:
            Case "cdosys"
                Set objMessage = CreateObject("CDO.Message")
                 objMessage.Sender  = MailOrder
                objMessage.TextBody = strMessage
                objMessage.To = strRecipientsEmail
                objMessage.Subject = strSubject
            '    On Error Resume Next '## Ignora Errore
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
                'Name or IP of remote SMTP server
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
                ="smtp.aruba.it"
                'Server port
                objMessage.Configuration.Fields.Item _
                ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _
                =25
                objMessage.Configuration.Fields.Update         
                objMessage.Send
                If Err <> 0 Then
                Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                End if
               On Error Resume Next '## Ignora Errore
              
            End Select

con questo:

Codice:
            Case "cdosys"
               
            ' -------------               
                    Set objMail = Server.CreateObject("CDO.Message")
                    Set objConfig = Server.createObject("CDO.Configuration")
                    With objConfig
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "smtp.aruba.it"
                        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")= 25
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
                        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
                        .Fields.Update
                    End With
               
                    Set objMail.Configuration     = objConfig ' Assegna le configurazioni
                        objMail.From            = strSender ' Mittente dell'email (indirizzo)
                        objMail.To                 = strRecipientsEmail ' Destinatario dell'email (indirizzo)
                        objMail.Subject         = strSubject ' Oggetto dell'email
                        objMail.HTMLBody         = strMessage ' Corpo del messaggio Formato HTML
                        objMail.Send()             ' Invia l'email
                    Set objMail = Nothing
            ' -------------               

                If Err <> 0 Then
                Err_Msg = Err_Msg & "<li>Impossibile spedire l'email. Errore: " & Err.Description & "</li>"
                End if
               On Error Resume Next '## Ignora Errore
              
            End Select

Prova e fammi sapere che errore ti da.
Perfetto! Colpito e affondato. Grazie mille. Ora vedo bene le modifiche che hai apportato. Grandeeee!!!
 
Ciao Paolo, ;) una canzone dice in ginocchio da te e io.... ritorno da te :p:p
Come accennato in un altro post mi rimane sempre il probelma che la mail inviata dal form non arriva, ti riporto esempi che ho provato:
1) "smtp.elektric.it" la mail arriva velocemente ma scartata perchè individuata come spam;
2) "smtp.aruba.it" dopo 30 secondi il browser segnala errore e la mail non arriva
3) "smtps.aruba.it" browser si blocca nella pagina e non arriva nessuna mail
Come mai??
 
Trovato...... L'ORRORE!!!!! per provare come utente utilizzavo una mail di libero con estenzione .IOL (xxx@iol.it) . Quand, con parametri funzionanti che mi avevi comunicato e succede questo.o ho fatto le prime prove funzionava benissimo.... però la cosa è molto strana. Ho due form, con parametri impostati come da correzzioni che avevi fatto, registrato come utente con mail xxx@iol.it e succede questo:
1) Se vengo contattato dal form da un utente che mi scrive la mail arriva subito ma come spam.
2) se invece come utente chiedo il recupero della password, dipende come gli gira la luna, non arriva..... e forse ne arriva una dopo 20 tentativi
mahhhh!!!!!.... mistero della rete o mistero degli script??:);)
 

Discussioni simili