newsletter con allegato e html

kamandre

Nuovo Utente
26 Ott 2008
3
0
0
ciao a tutti, questo è il mio primo post e vi ringrazio in anticipo per le risposte. Ho un piccolo sito internet con una newsletter, il funzionamento è molto semplice 3 pagine asp e un database access, al momento funziona bene, ma vorrei inserire nella mail che invio a chi si è registrato anche un allegato e mettere il testo in formato html, potete aiutarmi?

queste sono le pagine asp che gestiscono i dati e l'invio

invia.asp


<%@LANGUAGE = JScript%>
<%
// Recupero i dati dal modulo
var username = new String(Request.Form("username"));
var password = new String(Request.Form("password"));
var email = new String(Request.Form("email"));
var oggetto = new String(Request.Form("oggetto"));
var messaggio = new String(Request.Form("messaggio"));

// Verifico username e password
if ((username != "xxxxxx") || (password != "xxxxxx")) {
Response.Write("Autorizzazione negata");
Response.End;
}

// Creo la classe CDONTS.NewMail per inviare l'email
var INVIA = new ActiveXObject("CDONTS.NewMail");

// Riempio i campi dell'email
INVIA.To = "xxx@xxx.it";
INVIA.Bcc = email;
INVIA.From = "xxx@xxx.it"; // Inserisci il tuo indirizzo email
INVIA.Subject = oggetto;
INVIA.Body = messaggio;

INVIA.Send();

Response.Write("Newsletter inviata con successo.");
%>

newsletter.asp

<%@LANGUAGE = JScript%>
<%
// Apro la connessione al database
var Cn = new ActiveXObject("ADODB.Connection");
var Sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("../database/database.mdb");
Cn.Open(Sc);

// Estraggo gli indirizzi email dal database
var utenti = Cn.Execute("SELECT email FROM utenti");

// Costruisco il form Html per l'invio della Mailing list
Response.Write("<form method='post' action='invia.asp'>");
Response.Write("<input type='hidden' name='email' value='");
// Estraggo tutti gli indirizzi email dal database
while (!utenti.EOF) {
Response.Write(utenti("email") + ",");
utenti.MoveNext();
}
Response.Write("' style='width:100%;'>");
Response.Write("<b>Invio della Mailing list dal sito Cascinadiodona.it</b><br><br>");
Response.Write("<b>Username</b><br><input type='text' name='username' style='width:100px;'><br>");
Response.Write("<b>Password</b><br><input type='password' name='password' style='width:100px;'><br>");
Response.Write("<b>Oggetto</b><br><input type='text' name='oggetto' style='width:200px;'><br>");
Response.Write("<b>Messaggio</b><br><textarea name='messaggio' rows='15' style='width:100%;'></textarea><br>");
Response.Write("<input type='submit' value='INVIA' style='width:100px;'>");
Response.Write("</form>");

Cn.Close();
%>
 
In fase di invio devi usare il metodo AddAttachment di CDOSYS, specificando come parametro il percorso del file da inviare come allegato che dev'essere presente sul tuo server.

Quindi in invia.asp devi specificare anche:

// Riempio i campi dell'email
INVIA.To = "xxx@xxx.it";
INVIA.Bcc = email;
INVIA.From = "xxx@xxx.it"; // Inserisci il tuo indirizzo email
INVIA.Subject = oggetto;
INVIA.AddAttachment(Server.MapPath("\percorso\file.ext"));
INVIA.Body = messaggio;

Ti direi una sciocchezza ma non ricordo esattamente se si deve usare Server.MapPath o se devi mettere il precorso locale del file.

Prova, fammi sapere!
 
ciao, ma come dici tu il file dovrebbe gia essere sul server? se voglio spedire un file pdf da un qualsiasi pc che non sia il server non lo allega?

esiste un altro metodo per farlo?
 
ciao per il momento lascerei perdere l'upload del file...

ho creato una cartella test sul server ed ho inserito il file da allegare, dopo di che nel codice ho inserito questa stringa

INVIA.AddAttachment(Server.MapPath("/test/test.txt"));

purtroppo non funziona, mi da questo errore

Microsoft JScript runtime error '800a01b6'

Object doesn't support this property or method

/test/invia.asp, line 26
 

Discussioni simili