Errore recupero corpo email in newsletter

Ari prova:

If Session("messaggio") <> "" Then
messaggio = request.form("corpoemail")
End If

al posto di:

messaggio = request.form("corpoemail")

Fammi sapere, mi sto snervando, tra poco urlo come una checca isterica :D
 
Cambia questo:

If messaggio <> "" Then
Session("messaggio") = messaggio
Else
Response.End
End If

in questo:

Session("messaggio") = messaggio

e togli la IF dal Request.Form, mettendolo come prima.
 
ora viene visualizzata a video l'esito delle pagine inviate o meglio:
Pagina corrente: 10

e diciamo che si nota l'elaborazione del database... come se leggesse le email.
Il problema è che non arrivano...
 
non so se la variabile resta vuota o meno. Noto che cmq la pagina ci mette un po' ad elaborare quindi come se interrogasse il database e come se facesse realmente tutti i cicli dovuti.
Fatto sta che non arrivano le email quindi può anche darsi che la variabile messaggio sia vuota...
 
Dai, nemmeno a farlo apposta in questi giorni devo installare lo script in oggetto ad un cliente.

Se riscontro gli stessi problemi, quindi se risolvo, torno qui e ti indico la soluzione.
 
Ok, ci siamo quasi, spero :)

Prova ad eseguire questo:

<%@LANGUAGE = VBScript%>
<%
Dim messaggio, pag
pag = Request.QueryString("pag")
If IsNumeric(pag) = False Or pag < 1 Then pag = 1
If CInt(pag) = 1 Then
messaggio = Request.Form("corpoemail")
Else
messaggio = Session("messaggio")
End If
Session("messaggio") = messaggio
Response.Write pag & "<br><br>" & Session("messaggio")
%>
<script type="text/javascript">
function Vai()
{
document.location.href = "NOME_DEL_FILE_CORRENTE.asp?pag=<%=pag+1%>";
}
window.setTimeout("Vai()", 3000);
</script>

Fammi sapere se mantiene il valore del messaggio (a me si).
 
Ok, il contatore è il numero di pagina corrente.

In sostanza, per non perdere il valore, prendi il tuo script cosi come me lo hai postato all'inizio e, al posto di:

messaggio = Request.Form("corpoemail")

scrivi:

If CInt(pag) = 1 Then
messaggio = Request.Form("corpoemail")
Else
messaggio = Session("messaggio")
End If

Prova ad inviare le mail, vediamo se abbiamo partorito, e fammi sapere se è maschietto :)
 
DIMENTICAVO!

Prima di cambiare quel che ti ho appena detto, sposta queste due righe:

' Recupero e controllo il numero di pagina corrente
pag = Request.QueryString("pag")
If IsNumeric(pag) = False Or pag < 1 Then pag = 1

SOPRA a quello che devi modificare.
 
NO...NON ARRIVA NULLA


<%@LANGUAGE = VBScript%>
<%
' Recupero tutte le variabili per l'applicazione
Dim messaggio, pag, cn, rs, quante, tot, i, email

' Recupero e controllo il numero di pagina corrente
pag = Request.QueryString("pag")
If IsNumeric(pag) = False Or pag < 1 Then pag = 1

' Recupero il corpo della mail
If CInt(pag) = 1 Then
messaggio = Request.Form("corpoemail")
Else
messaggio = Session("messaggio")
End If



' Memorizzo il messaggio in una sessione per disporne
If messaggio <> "" Then
Session("messaggio") = messaggio
Else
Response.End
End If

' Mi connetto al database
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("supporter.mdb")

' Lancio la query
rs.Open "SELECT email FROM users", cn, 1

' Predispongo la paginazione
quante = 20
rs.CacheSize = quante
rs.PageSize = quante
rs.AbsolutePage = pag
tot = CInt(rs.PageCount)
i = 0

' Invio le mail una alla volta a blocchi da 50
Do While Not rs.EOF
Set email = Server.CreateObject("CDO.Message")
email.From = "info@blblba.com"
email.To = rs("email")
email.Subject = "Newsletter del " & Date()
email.HtmlBody = ""&Session("messaggio")
email.Send

Set email = Nothing
i = i + 1
If i = quante Then Exit Do

rs.MoveNext
Loop

' Un po di pulizia
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

' Mi sposto al blocco della pagina successiva
If CInt(pag) < CInt(tot) Then
Response.redirect "newsletter.asp?pag=" & CInt(pag) + 1
End If

' Monitorizzo il numero di pagina corrente
Response.write ("Pagina corrente: " & pag)
%>
 

Discussioni simili