Cdosys Invio copia email a utente

  • Creatore Discussione Creatore Discussione masieri
  • Data di inizio Data di inizio

masieri

Nuovo Utente
23 Ott 2008
10
0
0
Mi servirebbe un piccolo aiuto:
sto utilizzando un form che l'utente (dopo averlo compilato) dal mio sito invia con cdosys, chiedo se è possibile inserire un stringa che faccia in modo che una copia dell'email venga inviata anche all'utente.

Ho fatto diversi tentativi ma proprio non mi riesce, magari è semplice ma
sto studiando da poco asp.
Grazie.
 
Questo è il cdosys

<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->

<%
DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo

invioA = "[email protected]"

invioDa = "[email protected]"

nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")

'*rilevo i campi del form

FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
IF NOT Request.Form(numeroCampi) = "" THEN
corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
END IF
NEXT

'* creo gli oggetti cdosys sul server e li gestisco

DIM iMsg, Flds, iConf

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "[email protected]"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update

With iMsg
Set .Configuration = iConf
.To = InvioA
.From = InvioDa
.Sender = invioDa
.Subject = "Contatto dal dominio " & nomeDominio
.TextBody = "Questi i dati inseriti nel modulo presente alla pagina " & modulo & " da utente con indirizzo IP " & indirizzoIp & " browser e sistema operativo " & browserSistemaOperativo & vbCrLf & corpoMessaggio & ""
.Send
End With
%>
 
Non funziona

Io ho scritto esattamente:
.To = InvioA
.Cc = "[email protected]"

senza capire cosa sia "[email protected]"

Non funziona.

Qualsiasi cosa ho provato fino ad ora, come
invioA = "[email protected]" & ";" & Request.Form("email")

oppure
.To = invioA
.Cc = Request.Form("email")

oppure
.To = invioA
.BCc = Request.Form("email")

restituisce in tutti casi sempre lo stesso identico errore:
Tipo di errore:
(0x8004020F)
La classe di eventi per questa sottoscrizione si trova in una partizione non valida
form/invio.asp, line 43
la line 43 nel mio script è .Send

Se può essere utile avevo provato a fare delle ricerche su internet e avevo trovato
in un forum un messaggio di uno che aveva inserito la stessa identica richeista e
problema di errore, purtroppo il messaggio successivo era sempre il suo dove diceva:
"ok ragazzi risolto la faccenda era la configurazione della porta"

Saluti.
 
Con calma

Prova cosi:

<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->

<%
DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo

invioA = "[email protected]"

invioDa = "[email protected]"

nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")

'*rilevo i campi del form

FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
IF NOT Request.Form(numeroCampi) = "" THEN
corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
END IF
NEXT

'* creo gli oggetti cdosys sul server e li gestisco

DIM iMsg, Flds, iConf

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "[email protected]"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update

With iMsg
Set .Configuration = iConf
.To = InvioA
.Cc = InvioDa
.From = InvioDa
.Sender = invioDa
.Subject = "Contatto dal dominio " & nomeDominio
.TextBody = "Questi i dati inseriti nel modulo presente alla pagina " & modulo & " da utente con indirizzo IP " & indirizzoIp & " browser e sistema operativo " & browserSistemaOperativo & vbCrLf & corpoMessaggio & ""
.Send
End With
%>
 
Non va

Ha inviato ma di email ne è arrivata sempre una perchè .Cc = InvioDa
è sempre il mio indirizzo uguale a InvioA.

Provo a buttare una stupidata:
non è possibile duplicare With iMsg magari creando Dim InvioCopia

With iMsgDuplicato
Set .Configuration = iConf
.To = InvioCopia
.From = InvioDa
.Sender = invioDa
.Subject = "Contatto dal dominio "
.TextBody = "Questi i dati inseriti "
.Send
 
Si è giusto

Il mittente compila un form sul mio sito, invia e a me arriva l'email, della stessa email una copia vorrei che andasse anche a lui come riepilogo del form che ha compilato.

Faccio un esempio pratico.
L'utente compila un form sul sito per prenotare un soggiorno in hotel, a me arriva l'email con i suoi dati, vorrei che il riepilogo del form in copia andasse anche a lui in automatico tramite email.

Grazie per la pazienza.
 
Devi considerare i campi To, From e Cc. Il primo deve contenere la tua email, il secondo ed il terzo la mail del mittente. Da qui non si scappa!

Senza il Cc che ti ho suggerito funziona, giusto?

Se aggiungi il Cc e ci metti ma variabile con la mail del mittente, che è quella che sta anche in From, idovrebbe essere tutto ok.

Diversamente, cosa esattamente non funziona, cosa succede o non succede?
 
Non vuole saperne, invio quello che ho fatto

- Con .Cc

With iMsg
Set .Configuration = iConf
.To = InvioA
.Cc = Request.Form("email")
.From = Request.Form("email")
.Sender = invioDa
.Subject = "Contatto dal dominio "
.TextBody = "Questi i dati inseriti nel modulo "
.Send
End With

- Con .BCc

With iMsg
Set .Configuration = iConf
.To = InvioA
.BCc = Request.Form("email")
.From = Request.Form("email")
.Sender = invioDa
.Subject = "Contatto dal dominio "
.TextBody = "Questi i dati inseriti nel modulo "
.Send
End With

- e ho provato anche questo

With iMsg
Set .Configuration = iConf
.To = InvioA & ";" & Request.Form("email")
.From = Request.Form("email")
.Sender = invioDa
.Subject = "Contatto dal dominio "
.TextBody = "Questi i dati inseriti nel modulo "
.Send
End With

- in tutti e tre i casi restituisce sempre il solito errore

Tipo di errore:
(0x8004020F)
La classe di eventi per questa sottoscrizione si trova in una partizione non valida
formcdosys.asp, line 60

- alla line 60 corrisponde .Send

Quello che volevo chiedere e se a qualcuno che ha provato gli funziona, perchè mi chiedo se ho io dei problemi in locale o sul server, però senza .Cc e altro ha sempre funzionato bene.

Grazie e buona giornata.
 
non è questo..

non è uguale a quello che ho già fatto?

.To = InvioA & ";" & Request.Form("email")
 
Allora non sto capendo, oppure non ci riusciamo a spiegare tra noi.

Tu devi farti inviare un'email da un utente che nel form mette i suoi dati, compresa l'email, ok?

La mail, oltre ad arrivare a te, deve arrivare al mittente in copia.

Giusto???

Se si, qual'è il problema?

A livello tecnico, CDO (CDOSYS o CDONTS, è indifferente) ha la proprietà TO per raggiungere il destinatario e CC per il secondo destinatario, visibile (nonchè BCC per il destinatario invisibile).

Con TO e CC puoi aggiungere più destinatari diviendoli col "punto e virgola".

Prendi le variabili in cui ci sono le email che devi gestire (la tua e quella del mittente.

Metti la tua in TO, la sua in CC e FROM.

Non può non funzionare!

Stai testando in locale o su un server online?
 
Tutto giusto

Lo sto provando sia in locale che sul sito.
Se mi autorizzi ti invio per email il form e il file cdosys che uso.
Saluti.
 

Discussioni simili