279 messaggi dal 08 maggio 2001
Ho creato un piccolo sistema che estrapola gli indirizzi email da un file di testo ed invia loro una email.
Il problema che sto avendo è il seguente: sotto la mail ho creato un link che serve per disiscriversi ma nonostante nella funzione passo il parametro corretto (in quanto il file scorre nella lettura) nel link viene sempre visualizzato solo il primo record invece che il record corretto.
Posto il codice

<%
data = Date()
mittente = Request("mittente")
emailmit = Request("emailmit")
oggetto = Request("oggetto")
filename = Request("filename")
testomail= Request("FCKeditor1")
testomail = testomail &"<br><p><font face=Arial size=2>"&"Informativa ai sensi del Dlgs 196/03 (Codice Privacy): Ricevi questa email perchè sei iscritto al nostro servizio di mailing."&_
"Per non ricevere altre comunicazioni e CANCELLARE TUTTI I TUOI DATI DAL NOSTRO DATABASE, clicca sulla scritta [link]" & "</font></p>"
allegato = Request("allegato")
lettura = Request("lettura")

function invioemail(indmail)
link = "<a href=delmail.asp?email=[email]&lista="& filename &">REMOVE</a>"
testomail = Replace(testomail,"[data]","" & data &"")
testomail = Replace(testomail,"[link]","" & link &"")
testomail = Replace(testomail,"[email]","" & indmail &"")

Set objMail = CreateObject("CDO.Message")
objMail.From ="" & mittente &"<"& emailmit &">"
objMail.To = "" & email &""
objMail.Subject = "" & oggetto &""
objMail.HTMLBody = ""& testomail &""
objMail.Fields.Update()
objMail.Send()
Set objMail = Nothing
end function

Set FileObject=CreateObject("Scripting.FileSystemObject")
MioFile=Server.MapPath("/public/filevari/" & filename & "")
Set InStream=FileObject.OpenTextFile(MioFile,1,True)
totrec=0

Do While Not InStream.AtEndOfStream
totrec = totrec + 1
riga = InStream.ReadLine()
invioemail(riga)
Response.Flush
Response.Write "" & totrec &". Email spedita con successo a: " & riga &"<br>"
Loop

InStream.Close
Set InStream=Nothing
Set FileObject=Nothing
Response.End
%>
Modificato da djwebmaster il 12 marzo 2009 23.15 -
307 messaggi dal 13 luglio 2005
Ciao djwebmaster,
... è un modo un po' strano di utilizzare una function ...
Comunque l'errore penso sia nel fatto che la variabile "testomail" tu la modifichi una prima volta e ... rimane modificata, con i primi valori, anche per tutto il resto del ciclo ...
Quindi dovresti modificare la function così:

function invioemail(indmail)
link = "<a href=delmail.asp?email=[email]&lista="& filename &">REMOVE</a>"
testomailtmp = testomail
testomailtmp = Replace(testomailtmp,"[data]","" & data &"")
testomailtmp = Replace(testomailtmp,"[link]","" & link &"")
testomailtmp = Replace(testomailtmp,"[email]","" & indmail &"")

Set objMail = CreateObject("CDO.Message")
objMail.From ="" & mittente &"<"& emailmit &">"
objMail.To = "" & email &""
objMail.Subject = "" & oggetto &""
objMail.HTMLBody = ""& testomailtmp &""
objMail.Fields.Update()
objMail.Send()
Set objMail = Nothing
end function

Fammi sapere, ciao.

Umb

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.