22 messaggi dal 20 febbraio 2002
Con CDONTS è possibile mandare mail di testo e mail in formato HTML, è vero... però formattare una mail in HTML con CDONTS è una rottura di balle non indifferente, se si desidera una mail un tantino complessa :)

Vi sottopongo codesto quesito: ho un sito con una pagina utente che visualizza una scheda con i dati personali. Per esempio:

scheda.asp?nome=pluto

mi apre una paginetta dinamica con la foto del tizio, i dati personali, una descrizione e via dicendo.

Con CDONTS posso mandare un attachment, è vero, ma non posso mandare pagine dinamiche come quella indicata sopra. Se io scrivo:

CDONTSobject.AttachFile Server.MapPath("scheda.asp")

Lui mi manda una mail con allegato il file scheda.asp, cioè con la pagina che risiede sul server. Se io provo:

CDONTSobject.AttachFile Server.MapPath("scheda.asp?nome=pluto")

mi genera un errore (credo non accetti il punto interrogativo) e fine della faccenda. Per quanto strano, mi piacerebbe poter mandare un attachment che però, come in questo caso, è una pagina dinamica, non una pagina statica (che è facile spedire).

Avete idea di come si possa fare? Ho trovato un interessante ASP2HTM che prende una pagina dal server e la trasforma in html semplice ma non è supportato sul mio piano hosting.

Se avete idee... accetto qualsiasi suggerimento :)

In alternativa: se volete mandare una mail con CDONTS e volete che sia in HTML, avete qualche trucco per evitare di scrivere il BODY di CDONTS ... riga per riga, con 200 mila "acapi" e via dicendo? E' veramente scomodo :)

11.886 messaggi dal 09 febbraio 2002
Contributi
Mah, si fa con XMLHTTP ed è un oggetto che si installa con asp, quindi tutti lo supportano.

Allora a che serve? Puoi estrapolare l'output html da una pagina asp, questo vuol dire che chiamerai la pagina usando scheda.asp?nome=pluto e manderai per email l'output generato di conseguenza.

Allora fai:

<code>
Dim sHTML, objXMLHTTP, pagina
pagina = "scheda.asp?nome=pluto"
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET", pagina, False
objXMLHTTP.Send
sHTML = objXMLHTTP.responseText

'a questo punto sHTML contiene l'output da spedire.
'metti destinatario all'oggetto cdonts e poi fai
CDONTSobject.body = sHTML
CDONTSobject.Send
</code>

Mai provato ma dovrebbe funzionare.
Una nota: XMLHTTP funziona anche con pagine remote (o solo, non so dirtelo) per cui se vedi che non ti funziona correggi
pagina = "scheda.asp?nome=pluto"
in
pagina = "http://www.tuosito.it/cartella/scheda.asp?nome=pluto"

oki?

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
22 messaggi dal 20 febbraio 2002
Ciao Bright, grazie mille per la risposta :)

Come hai detto tu, in effetti funziona solo se metto "http://dominio..." e non puntando direttamente al file nella cartella :)

adesso mi arriva la mail... che contiene il codice HTML della pagina ASP corrispondente a "nome=pluto". Come posso convertire il codice in una mail "visualizzabile" già da Outlook Express? Oppure, una volta generato il codice HTML che metto nel CDONTS.body... Cosa consigli, di salvarlo come file (per dire "scheda_pluto.htm" e poi mandare quel file come attachment?

P.S.
Ho un problrma nel "salvare" il file di testo con un contenuto che vada oltre la semplice riga... ho scritto un msg in merito alla faccenda:

http://forum.aspitalia.com/forum/topic.asp?TOPIC_ID=12071

se passi di li e ti viene in mente qualcosa... ;)
11.886 messaggi dal 09 febbraio 2002
Contributi
Per me ti conviene mettere la pagina come corpo del messaggio, non come allegato, almeno... fa "più scena" ^__^ tanto il risultato sarebbe lo stesso, anzi, così salti un passaggio (Quello del salvare).
L'email ti arriva in formato testo? Cioè riesci a leggere i tag html?

Tipo...
&lt;b&gt;Ciao&lt;/b&gt;
lo leggi così anzichè vedere un Ciao in grassetto?

Se è questo il problema, devi impostare un paio di proprietà nell'oggetto CDONTS prima che la mail venga spedita.

cdontsobj.BodyFormat = 0
cdontsobj.MailFormat = 0

poi dovrebbe funzionare... ma se questo non bastasse, dovresti mettere nella pagina che invii per posta, questa riga:

&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;

Mettila proprio prima del tag body.
ciao!

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
22 messaggi dal 20 febbraio 2002
Ciao Bright,

grazie ancora, in effetti non veniva visualizzato nel modo corretto (ora si). Certo l'idea della fatturina in attachment mi ingolosisce ancora... ma non è immediato da farsi... Se hai idee... :)

Saluti!

4 messaggi dal 30 maggio 2002
Ciao io mi trovo in una situzaione simile, vorrei chiederti una cosa:
come faccio nella parte di codice sotto riportato (il tuo) a inserire

"nome=pluto" ma pluto lo voglio dinamico, nel senso che dovrebbe essere o una variabile di sessione o un request.querystring?

<code>
Dim sHTML, objXMLHTTP, pagina
pagina = "scheda.asp?nome=pluto"
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET", pagina, False
objXMLHTTP.Send
sHTML = objXMLHTTP.responseText

Grazie mille
11.886 messaggi dal 09 febbraio 2002
Contributi
Puoi fare così:

pagina = "scheda.asp?nome=" & Session("nome")

oppure:

pagina = "scheda.asp?nome=" & Request.QueryString("nome")

dipende da dove proviene la variabile... devi semplicemente fare la concatenazione tra un valore fisso: "sceda.asp?nome=" e una variabile.


Enjoy learning and just keep making
14 messaggi dal 09 dicembre 2002
Ciao, ho provato ad usare anche io il codice che avete postato ma mi da l'errore "necessario oggetto" nella riga che riporto sotto con gli asterischi.....non capisco perchè visto che l'oggetto CDONTSobject lo creo sopra... potreste darmi un mano?
grazie mille

Dim sHTML, objXMLHTTP, pagina
pagina = "http://www.miosito./interventi/report-intervento2.asp?societa=xyz&id_intervento=20"
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET", pagina, False
objXMLHTTP.Send
sHTML = objXMLHTTP.responseText
Set CDONTSobjetc = Server.CreateObject ("CDONTS.NewMail")
**** CDONTSobject.BodyFormat = 0
CDONTSobject.MailFormat = 0
CDONTSobject.From = "pippo@tin.it"
CDONTSobject.To="pluto@tin.it"
CDONTSobject.body = sHTML

CDONTSobject.Send

Modificato da er principe il 06 febbraio 2003 09.47 -

Come un bambinoo che disegna le cose belle che non ha....passo il tempo ad inventare la realtà

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.