Ciao a tutti!
Sto realizzando un script in asp su aruba per inviare newsletter agli utenti registrati.
Il corpo del messaggio, in HTML, è una pagina asp dinamica (cambia in base all'id della newsletter scelto da inviare)
Qui posto il codice che ho arrangiato ma che non sempre funziona, vorrei avere la possibilità di inviare la pagina direttamente senza farla ricostruire all'interno della pagina stessa.
Qualcosa di molto più automatico e meno elaborato.
Mail.Body http://www.sito.it/newsletter/news.asp?id=5
Si può fare?
codice:
Nell'HEAD:
<%
strHost = "smtp.aruba.it"
%>
<%
Dim sc, cn, rs
' DEFINISCO LA STRINGA DI CONNESSIONE
sc = ""
sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\webs\sitoit\mdb-database\notizie.mdb"
' IMPOSTO LA CONNESSIONE EDIL RECORDSET
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%
strHTML = "<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=ISO-8859-1"" /><link href=""http://www.sito.it/newsletter/news.css"" rel=""stylesheet"" type=""text/css"" media=""screen"" /></head><body><center>" & chr(13) &chr(10)
strHTML = strHTML + "<div id=""container"" style=""background-color: transparent;margin: 0 auto; width: 770px; text-align: left;"">" & chr(13) &chr(10)
strHTML = strHTML + "
[img][/img]</p>"& chr(13) &chr(10)
strHTML = strHTML + "<div class=""inizionews"" style=""background-color: #f5f5f5; color: black; border-top: 5px solid blue; border-bottom:5px solid yellow ;padding-left: 20px; padding-right: 20px; "">" & chr(13) &chr(10)
cn.Open sc
rs.Open "SELECT * FROM newsletterdef", cn, 1
strHTML = strHTML + "<h3 style=""font-weight: bold; color: #00549d; font-size: 1.3em; margin-top: 7px; margin-bottom: 3px;"">" & chr(13) &chr(10)
strHTML = strHTML + rs("titolonewsletter") & chr(13) &chr(10)
strHTML = strHTML + "</h3>"& chr(13) &chr(10)
strHTML = strHTML + "<div style=""margin-bottom: 8px;margin-top: 13px;text-align: justify;font-size: 99%; "">"& chr(13) &chr(10)
strHTML = strHTML + rs("testo") & chr(13) &chr(10)
strHTML = strHTML + "</div></div>"& chr(13) &chr(10)
rs.close
strHTML = strHTML + "<ul class=""elenconews"" style=""font-size: 88%;margin-top: 20px;list-style: none; "">"& chr(13) &chr(10)
rs.Open "SELECT * FROM abbdef", cn, 1
Do While Not rs.EOF
strHTML = strHTML + "<li style="" margin-top: 10px;margin-bottom: 10px;list-style-position: outside;background: transparent url(http://www.sito.it/images/elenco.gif) no-repeat 0 4px;margin-left: 10px;padding-left: 10px;font-size: 88%;"">"& chr(13) &chr(10)
strHTML = strHTML + rs("titolo") &chr(13) &chr(10)
strHTML = strHTML + "" &chr(13) &chr(10)
strHTML = strHTML + rs("titolo2") &chr(13) &chr(10)
strHTML = strHTML + ""& chr(13) &chr(10)
rs.MoveNext
Loop
strHTML = strHTML + "[/list]" & chr(13) & chr(10)
rs.close
strHTML = strHTML + "<p class=""ricezione"" style=""font-size: 80%;padding-top: 5px;padding-bottom: 5px; "">Se non vuoi più ricevere la newsletter clicca questo link: cancellarsi</p>
strHTML = strHTML + "</body></html>"
%>
Per inviare la newsletter, nel corpo della pagina:
codice:
<div class="item">
<%
' connessione al database
strDbPath = Server.MapPath("../mdb-database/aspemail-users.mdb")
ConnectStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & strDbPath
Set rs = Server.CreateObject("adodb.recordset")
rs.Open "users", ConnectStr
If Request("Send") <> "" Then
' send email to all users
While not rs.EOF
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.AddAddress rs("email")
Mail.Host = strHost
Mail.IsHTML= True
Mail.From = "info@sito.it"
Mail.FromName = "Sito IT"
Mail.Subject = "Newsletter "
Mail.Body = strHTML
If Request("Queue") <> "" Then
Mail.Queue = True
End if
' finally: send message
Mail.Send
rs.MoveNext
Wend
Response.Write "Inviato!"
Else
' simply display the list of users in the database
Response.Write "<center>Newsletter Confermata!
Premere invia Newslette per inviare</center>"
End If
%>
<FORM ACTION=""send2.asp"">
<center>
<INPUT TYPE=SUBMIT NAME="Send" VALUE="Invia Newsletter"></center>
</FORM>
</div>
Grazie!
Davide