3 messaggi dal 13 dicembre 2002
www.systempixel.com
Aiutatemi... ho un codice ASP che deve inviare newsletter da un server hosting Win2003.
il problema è che il codice in questione è compatibile con CDONTS, ASPmail e JMail, ma non è compatibile con CDOSYS, supportato da Win2003... comepotrei fare per risolvere questo inghippo?

il codice è il seguente:
<%
set cn = createobject("adodb.connection")
cn.open strCon
set rs = cn.execute("select * from mails where mailID = "& request.querystring("mailID") &"")
subject = rs("subject")
mailType = rs("mailType")
mailBody = rs("mailBody")

set rs = cn.execute("Select * from settings")
strServer = rs("server")
email = rs("email")

page = trim(request.querystring("page"))
If page = "" Then
page = 1
else
page = cint(page)
End If
DisplayNum = 0

Set oCon = Server.CreateObject ("ADODB.Connection")
Set Rec = Server.CreateObject ("ADODB.Recordset")
oCon.Open strCon
Rec.PageSize = 100
Rec.CursorLocation = adUseClient
sql = "Select email from emailTables where active = 0"
Rec.Open sql, oCon
ipage = Rec.PageCount
if page = 0 or page > ipage Then
Rec.AbsolutePage = ipage
else
Rec.AbsolutePage = page
end if
allEmail = Rec.RecordCount
do while not Rec.eof AND DisplayNum < 100

Set strMail = CreateObject("Persits.MailSender")
On Error Resume Next
strMail.From = email
On Error Resume Next
strMail.FromName = email
On Error Resume Next
if mailType = 0 then
strMail.IsHTML = False
else
strMail.IsHTML = True
end if

On Error Resume Next
strMail.Host = strServer
On Error Resume Next
strMail.AddAddress Rec("email")
On Error Resume Next
strMail.Subject = subject
On Error Resume Next
strMail.Body = mailBody
On Error Resume Next
strMail.Send

DisplayNum = DisplayNum + 1
Rec.movenext
loop

If ipage > 1 And page < ipage Then
strPage = "post.asp?mailID="& request.querystring("mailID")&"&page="& page+1
strTimer = 3
else
strPage = "default.asp"
strTimer = 5
strMsg = strMsg & "<br><br>All mails sent to list. "

sql = "UPDATE mails set send = 1 where mailID = "& request.querystring("mailID")
cn.execute(sql)
end if

%>

Il codice non è mio ma l'ho preso da uno script free quindi totalmente modificabile...

spero che qualcuno mi possa aiutare...

Grazie Mimmo977

Mimmo
mimmo@systempixel.com
http://www.systempixel.com
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Giusto per la cronaca,
il problema è risolvibile non nella pagian che hai postato ma in quella che ha il compito di generare la mail che, a giudicare dal richiamo fatto nello script postato, dovrebbe chiamarsi post.asp.

Al suo interno ti basterà aggiungere la routin di generazione email utilizzando l'oggetto CDOSYS.

Visto che lo script lo hai reperito in rete, sempre in rete potrai trovare una caterva di script che utilizzano l'invio di mailtramite CDO.

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
3 messaggi dal 13 dicembre 2002
www.systempixel.com
Grazie dell'attenzione, cmq hoprovato a creare l'oggetto CDOSYS ma al momento dell'invio mi restituisce un errore:

ADODB.Fields (0x800A0BB9)
Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
/progastra/newsletter/post.asp, line 48

il codice di prima l'ho cambiato così:

<%


set cn = createobject("adodb.connection")
cn.open strCon
set rs = cn.execute("select * from mails where mailID = "& request.querystring("mailID") &"")
subject = rs("subject")
mailType = rs("mailType")
mailBody = rs("mailBody")

set rs = cn.execute("Select * from settings")
strServer = rs("server")
email = rs("email")

page = trim(request.querystring("page"))
If page = "" Then
page = 1
else
page = cint(page)
End If
DisplayNum = 0

Set oCon = Server.CreateObject ("ADODB.Connection")
Set Rec = Server.CreateObject ("ADODB.Recordset")
oCon.Open strCon
Rec.PageSize = 100
Rec.CursorLocation = adUseClient
sql = "Select email from emailTables where active = 0"
Rec.Open sql, oCon
ipage = Rec.PageCount
if page = 0 or page > ipage Then
Rec.AbsolutePage = ipage
else
Rec.AbsolutePage = page
end if
allEmail = Rec.RecordCount
do while not Rec.eof AND DisplayNum < 100


DIM iMsg, Flds, iConf

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

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.nomeserver.it"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update

With iMsg
Set .Configuration = iConf
On Error Resume Next
.From = email
On Error Resume Next
.FromName = email
On Error Resume Next
if mailType = 0 then
.IsHTML = False
else
.IsHTML = True
end if

On Error Resume Next
.Host = strServer
On Error Resume Next
.AddAddress Rec("email")
On Error Resume Next
.Subject = subject
On Error Resume Next
.Body = mailBody
On Error Resume Next
.Send
End With

DisplayNum = DisplayNum + 1
Rec.movenext
loop

If ipage > 1 And page < ipage Then
strPage = "post.asp?mailID="& request.querystring("mailID")&"&page="& page+1
strTimer = 3
else
strPage = "default.asp"
strTimer = 5
strMsg = strMsg & "<br><br>All mails sent to list. "

sql = "UPDATE mails set send = 1 where mailID = "& request.querystring("mailID")
cn.execute(sql)

end if

%>

----- ma cmq non funge, forse ho sbagliato io in qualche passaggio...

Poi la pagina post.asp è questa, viene richiamata...

grazie ancora per l'attenzione.

Mimmo977

Mimmo
mimmo@systempixel.com
http://www.systempixel.com
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Avendo utilizzato l'autenticazione SMTP in fase di generazione delle email, è necessario che prima sia specificato il metadata rerativo alla libreria dei tipi.

In testa allo script, prima dei marcatori di inizio script, inserisci questa riga:
<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->

Poi specifica qual è la riga 48

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
3 messaggi dal 13 dicembre 2002
www.systempixel.com
Hai ragione scusa
la riga è la seguente:

Flds(cdoSendUsingMethod) = cdoSendUsingPort

cmq avevi ragione, mancava la riga che hai specificato in alto allo script...

Lo script ora infatti non va più in errore, ma non arrivano le email...

Mi sto esaurendo...

cosa devo fare...!!!!

cmq sei un grande... grazie ancora..!!

ciao e spero di ritrovarti presto..

Mimmo
mimmo@systempixel.com
http://www.systempixel.com

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.