da CDONTS a CDOSYS

AlvinCA83

Nuovo Utente
9 Ago 2007
2
0
0
Ciao a tutti,

sono nuovo del forum e del linguaggio ASP. Sono riuscito a trovare una Newsletter però ho un problema perchè mi è sembrato di capire che il server su cui è hostato il programma non accetta CDONT. Ho provato a leggere il post di "POLE" in merito alla modifica della sintassi vbscript, java, non ho capito molto bene, ma non ci sono riuscito. Non è che potreste darmi una mano? Vi ringrazio

Ecco il codice originario:

<%
sub sendmail(recipient,bccrecipient,senderemail,subject,message)
Set objCDO = Server.CreateObject("CDO.NewMail")
recipients=split(recipient,",")
for x=0 to ubound(recipients)
objCDO.To = recipients(x)
next
if bccrecipient<>"" then
bccrecipients=split(bccrecipient,",")
for x=0 to ubound(bccrecipients)
objCDO.bcc = bccrecipients(x)
next
end if
objCDO.From = defaultemail
objCDO.Value("Reply-To") = senderemail
objCDO.Subject = subject
objCDO.Body = message
objCDO.Send
Set objCDO = Nothing
end sub
%>
 
CreateMHTMLBody

Scusate se mi inserisco in questa discussione ma la ritengo molto vicina al mio problema.

Utilizzando CDOSYS è possibile inviare direttamente una pagina html (o asp) senza dover "riscrivere" tutto il codice utilizzando createMHTMLBody.

A differenza di htmlbody infatti non occorre riscrivere tutto il codice inserendo fra l'altro nel corpo dello script molti "" doppi "" per evitare errori.
Con CreateMHTMLBody di contro è sufficiente inserire:"http://www.miosito.it/pagina.asp" e l'intera pagina con tanto di formattazione css ed altro viene spedita (naturalmente i riferimenti interni alla pagina per css o immagini o file da includere devono essere relativi sempre all'indirizzo completo sul server)

(correggetemi se sbaglio)
Però, dopo aver provato entrambi i metodi ho riscontrato un difetto che
anche se può sembrare banale per alcune pagine con molte foto diventa perlomeno fastidioso.
Mentre con htmlbody viene inviata per email la pagina senza le immagini (ma solo con i relativi script src......) con CreateMHTMLBody vengono inviati i codici delle foto centuplicando così il peso dell'email.

Esiste una soluzione ?
Spero di essermi spiegato bene.

Grazie per l'eventuale risposta
 
grazie

Grazie per la pronta risposta
Ho provato lo script e direi che funziona egregiamente

Ha solo un "difetto" è in Jscript mentre la pagina all'interno del quale dovrebbe poi essere inserito è interamente in VB.

Lo script infatti andrebbe inserito all'interno di un ciclo che legge da un DB l'email, nome utente, richiama e personalizza la pagina con il nome, e poi infine spedisce.
Passa poi al successivo iscritto e ripete il ciclo

Ho provato ad inserire il codice con le dichiarazoni <script language=javascript> e relativo tag di chiusura, ma non funziona.

Anzichè tradurre l'intera pagina in Js, se fosse possibile mi sembra più veloce tradurre la script in VB (se si può) ma io non sono in grado.
Mi potete aiutare?
Grazie comunque.
 
eddai un po di fantasia :)

<%@LANGUAGE = VBScript%>
<%
Dim richiesta, email
Set richiesta = Server.CreateObject("Msxml2.XMLHTTP.4.0")
richiesta.Open("GET", "http://www.indirizzo.it/pagina.htm", False)
richiesta.Send()
Set email = Server.CreateObject("CDONTS.NewMail")
email.From = "[email protected]"
email.To = "[email protected]"
email.Subject = "Guarda la pagina che ti ho spedito!"
email.BodyFormat = 0
email.MailFormat = 0
email.Body = richiesta.responseText
email.Send
Response.Write "Email inviata con successo"
Set email = Nothing
Set richiesta = Nothing
%>

l'ho tradotta in vb ad occhio, al volo, ma dovrebbe funzionare ;)
 
Cdosys

Grazie per la risposta
In efetti pur avendo postato stavo smanettando per trovare anche da
solo la soluzione, anche perchè devo usare CDOSYS (server Aruba)

Le parentesi nell'istruzione richiesta.Open("GET", "http://www.indirizzo.it/pagina.htm", False)
generano un errore in quanto viene interpretata come sub routine

La soluzione che alla fine ho trovato, anche considerando come detto l'utilizzo di CDOSYS è la seguente:

Set richiesta= Server.CreateObject("Msxml2.XMLHTTP.4.0")

richiesta.Open "GET", paginaDaInviare, False
richiesta.Send
' Spedisco la news
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.aruba.it"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update
With iMsg
Set .Configuration = iConf
.To = email
.From = "[email protected]"
.Sender = "[email protected]"
.Subject = oggetto
.HtmlBody = richiesta.responseText
.Send
End With
Set richiesta= Nothing

chiaramente le variabili paginaDaInviare, email e oggetto vengono generate prima
Ho provato e sembra che tutto funzioni bene.

Come avrai capito però non ho padronanza degli script, provo, riprovo e chiedo, poi se riesco modifico
Ho però sempre il dubbio di "lasciare qualcosa aperto" il classico "bug"
Ad esempio nelle istruzioni fornite da Aruba non ho trovato la chiusura del Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
mentre ho notato che nello script da te elaborato hai chiuso
Set email = Nothing
E' necessario farlo anche con CDOSYS ?

Puoi per cortesia controllarmi se è tutto OK ?
Grazie ancora per la pazienza.
Vorrà dire che ti offrirò da bere

:beer:
ecco fatto.
 
sono un incapace ehehe

salve a tutti, sono nuovissimo di programmazione e di questo forum ma avrei un grande bisogno di aiuto!
ho letto in giro nel forum cercando una soluzione al mio problema ma la mia inesperienza nel campo non mi ha aiutato poi molto...

vi spiego il mio problema, devo creare un form contatti su di un sito hostato su aruba

avrei bisogno di pochi semplici parametri quali:
1)nome del mittente
2)url del mittente
3)allegare file dimenzioni massime 140x70
ed inviare il tutto ad un email... qualcuno può aiutarmi?
avrei bisogno del codice completo e di una breve spiegazione passo passo di come creare i file e dove posizionarli....please, mi manca solo questo per completare il sito :dipser:
 

Discussioni simili