Cdont-cdosys-cdo

  • Creatore Discussione Creatore Discussione jerry
  • Data di inizio Data di inizio

jerry

Utente Attivo
2 Mag 2006
47
0
0
Scusate ancora una volta per il mio sopravvento in questo forum, ma visto la professionalità la quale Vi impegnate nelle discussioni, io malgrado la mia ignoranza e sete di conoscenza ne approfitto.
Il mio quesito:
Ho una newsletter che funziona di sotto c'è riportato il codice malato (in rosso).
Come posso fare a farla funzionare, il server che mi ospita non supporta CDONT, ma vuole penso CDOSYS, come posso fare grazie infinite... jerry

Set email = CreateObject("CDONTS.NewMail")
email.From = mittente
email.To = destinatario
email.Subject = oggetto

email.BodyFormat = Request.Form("formato")
email.MailFormat = Request.Form("formato")
 
Cio Pole

Grazie mille per essere venuto in mio soccorso...:)
prima di tutto questa volta e asp.
E' ho modificato così:

' INVIA IL MESSAGGIO
Set email = Server.CreateObject("CDO.Message")
email.From = "sitoweb@provider"
email.To = "mio@provider"
email.Subject = oggetto
' FORMATO EMAIL
email.BodyFormat = Request.Form("formato")
email.MailFormat = Request.Form("formato")
email.Body = testo
'INVIO
email.Send

... Ma c'è solo un piccolo problema, l'email me la invia se elimino FORMATO EMAIL , deduco che non riesce a riconoscere il formato che io gli seleziono attraverso il campo select "formato".
Come posso cambiare il BodyFormat=; e Body=......grazie mille ancora una volta
 
Ultima modifica:
Non lasciatemi da solo......

Non lasciatemi da solo...... Vi prego help me
 
Ciao Jerry :)

Anzitutto ti spiego una cosa. Tu dici:
jerry ha scritto:
prima di tutto questa volta e asp
Anche l'altra volta era ASP, la differenza sta nel linguaggio ;)
L'altra volta era JScript, e ad occhio stavolta ti serve VBScript.

Eccoti allora il codice CDO per VBScript:
Set objMail = Server.createObject("CDO.Message")

Set objConfig = Server.createObject ("CDO.Configuration")

With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "tuo_server_di_posta"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End With

Set objMail.Configuration = objConfig

objMail.From = var_mittente
objMail.To = var_destinatario
objMail.Subject = var_oggetto
objMail.HTMLBody = var_corpo_mail

objMail.Send()

Set objMail = Nothing

SaLuT!
:byebye:
 
GRAZIE POLE per essere ritornato in mio soccorso, non so come sdebitarmi.
Riguardo alla tua risposta non so di preciso se mi serve vbs.
...E così ho pensato di riportarti la maggior parte del codice, (evidenziato in rosso troverai il mio problema)
..penso che il codice non riesca a prelevare dal form la mia scelta dal campo select "formato" e completare l'invio del messaggio. Aspetto tue notizie.. jerry

<!-- #INCLUDE FILE="adovbs.inc" -->
<%
operazione = Request.QueryString("tipo")
url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database")
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open url_DB
IF operazione = "invia" then
IF Request("oggetto") <> "" and Request("testo") <> "" then
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM database"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
IF not RecSet.Eof then

mittente = "mio@provider"
Do until Recset.eof
destinatario = RecSet("mail")
testo = Request.Form("testo")
oggetto = Request.Form("oggetto")

Set email = Server.CreateObject("CDO.Message")
email.From = "sitoweb@provider"
email.To = "mio@provider"
email.Subject = oggetto

' FORMATO EMAIL
email.BodyFormat = Request.Form("formato")
email.MailFormat = Request.Form("formato")


email.Body = testo
email.Send
RecSet.Movenext
loop

End If

RecSet.Close
Conn.close
Set RecSet = Nothing
Set Conn = Nothing
 
La parte che hai messo in rosso non funziona perchè è il codice per JScript, mentre tu stavolta stai usando VBScript :)

Ti consiglio quindi di sostituire la tua parte di codice che invia la mail con il codice che ti ho postato stamattina in blu, vedrai che poi fungerà ;)

Ora scusami ma devo scappare, per i prossimi giorni non credo mi connetterò al forum (se non di rado), quindi non potrò aiutarti, ma comunque qui ci sono un sacco persone in grado di aiutarti vedrai ;)

In caso avessi ancora problemi abbi solo un pò di pazienza, prima o poi qualcuno risponderà :)


jerry ha scritto:
GRAZIE POLE per essere ritornato in mio soccorso, non so come sdebitarmi.
Non ti preoccupare, più tardi ti mando le mie coordinate bancarie, eh eh eh!! :D :D :D

Ciao e buon lavoro/studio!
:byebye:
 
Ho provato di tutto, ma non funziona...

Appello a tutti coloro che hanno assistito a questa conversazione.
Vi aggiorno.... ho provato di tutto, ma non funziona.
Se qualcuno potrebbe per favore aiutarmi ne sarei veramente lieto.

Vi informo che dal form per l'invio della newsletter posso scegliere se inviarla html o in formato testo.

.... e proprio li che si blocca ....grazie in anticipo jerry
 
Vi aggiorno....

Grazie alle diritte del ns caro pole, Vi aggiorno funziona così (senza errore.), ma quando mi arriva l'email non mi arriva ciò che ho mandato, ma mi da l'errore del server.
Se invece prova modificare la stringa evidenziata rossa, funziona ma mi da "errore" impossibile visualizzare la pagina.
qualcuno saprebbe spiegarmi cosa, come, e perchè? grazie

Do until Recset.eof
destinatario = RecSet("mail")

testo = Request.Form("testo")

Set emailMail = Server.createObject("CDO.Message")
Set emailConfig = Server.createObject ("CDO.Configuration")
With emailConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mioprovider.com"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End With
Set emailMail.Configuration = emailConfig
emailMail.From = "[email protected]"
emailMail.To = "destinatario"
emailMail.Subject = Request.Form("oggetto")
emailMail.HTMLBody = Request.Form("testo")
emailMail.Send()
Set emailMail = Nothing
 
Eccomi qui ;)

Non è che sei stato chiarissimo jerry:
jerry ha scritto:
Vi aggiorno funziona così (senza errore.), ma quando mi arriva l'email non mi arriva ciò che ho mandato, ma mi da l'errore del server
Più precisamente che errore ti dà? :)



jerry ha scritto:
Se invece prova modificare la stringa evidenziata rossa, funziona ma mi da "errore" impossibile visualizzare la pagina.
Provi a modificarla da come a come?



:byebye:
 
Scusa per l'italiano :)

1) Se lascio il cod così:
emailMail.From = "mittente"
emailMail.To = "destinatario"
capita questo: che mi visualizza a video "i messaggi sono stati inviati correttemente", ma nella mia casella di posta non è arrivato nulla.

2) Se provo a modificare il cod così:
emailMail.From = "[email protected]"
emailMail.To = "destinatario"
mi succde che: i messaggi me li invia, ma mi visualizza
"errore inpossibile visualizzare la pagina"

3) se provo invece a scrivere emailMail.To = RecSet("mail"), eliminando il Do until Recset.eof mi da errore generale.
Grazie anticipatammente... jerry
a proposito... ti ho inviato un bonifico :)
 
Credo di aver capito :)

Non puoi jerry mettere
emailMail.From = "mittente"
emailMail.To = "destinatario"

perchè tra le virgolette non puoi scrivere semplicemente "mittente" e "destinatario", devi mettere indirizzi reàli, altrimenti ti va in bomba tutto quanto ;)

Lascia perdere le soluzioni 1) e 3), concentrati sulla 2)

Fai una prova con 2 indirizzi reali (io ne metto 2 inventati per ovvi motivi)
emailMail.From = "[email protected]"
emailMail.To = "[email protected]"


Se ti dovesse dare "errore impossibile visualizzare la pagina", circa a metà di questa pagina di errore ti dirà anche che errore è.

Fammi sapere!
:byebye:

P.S.=non so quando ti potrò rispondere, quindi.. abbi pazienza! ;)



jerry ha scritto:
a proposito... ti ho inviato un bonifico:)
Eh eh eh eh! :D:D:D
 
Resoconto (senza conto):D :D :D

Caro Pole a parte gli scherzi grazie.

Ti faccio il resoconto di ciò che è successo.
Ho inserito i miei indirizzi,
emailMail.From = "[email protected]"
emailMail.To = "[email protected]"
proprio come mi avevi riferito, ed è successo questo:

Mi ha inviato allo stesso indirizzo inserito nel (emailMail.To = "[email protected]") n° 3 e-mail.

PS: Nel database io avevo inserito a sua volta 3 indirizzi e-mail diversi per provare le varie ricezioni.

Per il resto funziona tutto, e senza errori.
grazie in anticipo
 
jerry ha scritto:
Mi ha inviato allo stesso indirizzo inserito nel (emailMail.To = "[email protected]") n° 3 e-mail.

PS: Nel database io avevo inserito a sua volta 3 indirizzi e-mail diversi per provare le varie ricezioni.

Per il resto funziona tutto, e senza errori.
grazie in anticipo
Eh eh eh, dai che piano piano ce la facciamo ;)

Da quel che ho capito il tuo script di invio mail è ancora all'interno del ciclo Until, quindi è normale che ti invii 3 e-mail, perchè ne manda una per ogni record che trova nel DB (infatti ne hai inseriti proprio 3) :)

Per applicare al emailMail.To gli indirizzi email salvati nel DB fai queste due cose:
1 - inserisci nel DB degli indirizzi REALMENTE ESISTENTI;
2 - nel codice che invia la mail fai: emailMail.To = RecSet("mail") & ";"

Buon lavoro, a domani!
:byebye:

P.S= se hai ancora problemi posta il codice che così lo mettiamo a posto una volta per tutte ;)
 
Impossibile visualizzare la pagina

Dopo aver apportato le modifiche da te consigliate, ho riscontrato il seguente errore: Impossibile visualizzare la pagina
E l'email sono state recapitate al 1 record.
Ti allego il codice:


a domani jerry
 

Allegati

Prova con l'allegato jerry ;)

Praticamente ho fatto si che non venga mandata una mail diversa per ogni singolo indirizzo, ma una singola mail a tutti gli indirizzi salvati nel DB.

Ricordati di inserire nel DB e nel emailMail.From degli indirizzi reali! :)

Fammi sapere
:byebye:
 

Allegati

error '80040213'

Questo è quanto accaduto, dopo aver apportato le tue modifiche, ho provato a fare qualche prova e in primo momento mi ha dato il seguente errore:
CDO.Message.1 error '80040213'
The transport failed to connect to the server.
/writable/admin/newsletter_corsi.asp, line 55


La linea 55 coincide con "emailMail.Send()"

allora ho provato ad aggiungere tra gli apici:
emailMail.To = "destinatario"

Risultato: solito errore. inoltre senza inviare e-mail
:confused:
 
altre risorse

Un mio amico ieri sera mi ha detto che,il problema piu' grave non e' questo, ma bensi' la dichiarazione di una nuova istanza per CDO.Message e CDO.Configuration, per ogni record letto dalla tabella. Per garantire un listato piu' leggibile e sicuramente piu' corretto, sarebbe conveniente istanziare un unico oggetto emailMail e emailConf, configurarli per bene, al di fuori del ciclo e successivamente richiamarli all'interno del Do Until esclusivamente con i metodi relativi all'invio della posta elettronica.
Io gli ho risposto:
Scusa ma che lingua parli, io so parlare soltanto l'italiano base,
Tu caro amico Pole conosci questa lingua,
se è si potresti perfavore tradurmela?......
con affetto jerry
 
Dimenticavo...

Mi ha detto anche:
Probabilmente sara' sufficiente specificare il nuovo destinatario ed inviare l'email, poiche', presumo, che l'oggetto ed il corpo della mail possano essere impostati prima del ciclo

Ed io gli faccio:
Ho capito tutto, adesso si che mi è chiaro.....grazie
 
Questa è la traduzione del mio amico

Adesso si cheè molto chiaro.
Peccato che non sò neanche da dove iniziare.!!

Crea oggetto emailMail
Crea oggetto emailConf

Imposta parametri emailMail
Imposta parametri emailConf

Crea query e Recordset

Ripeti
Recupera email da Recordset
Invia email al destinatario

Muovi Recordset
Fino a quando il recordset ha raggiunto la fine

Distruggi oggetto emailMail
Distruggi oggetto emailConf

Distruggi oggetto Recordset
 

Discussioni simili