Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Visualizzazione caratteri in email prodotta da CDOSYS

    Buonasera

    Un form in flash invia delle variabili ad una pagina asp che le compila producendo ed inviando una email.
    Il testo è formattato in html e tutto filerebbe liscio se non fosse per il campo "informazione".
    Infatti, in base al testo inserito dall'utente (mi riferisco ad accapo vari, caratteri accentati, parentesi, virgolette e via dicendo) si verificano degli errori nella compilazione dell'email.
    A parte il fatto che tutti i caratteri accentati vengono visualizzati così (èòà Ã), ma poi, in base a non ho ben capito quale compinazione di caratteri ed accapo, non viene compilato il resto del testo nell'email.
    Esiste qualche comando per fare in modo che il testo ricevuto da una variabile resti così come viene digitato senza creare problemi di questo tipo?

    Grazie

    PS: ho provato a formattare il testo come "Text" però il risultato è veramente lontano da quello che ottengo nell'altro modo.
    Se possibile preferirei evitare questa soluzione.
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  2. #2
    immagino che inviando i dati alla pagina ASP tu utilizzi una querystring

    pagina.asp?emailcontenuto=ciao questa è una email

    la cosa migliore sarebbe inviare invece

    pagina.asp?emailcontenuto=%63%69%61%6F%20%71%75%65 %73%74%61%20%E8%20%75%6E%61%20%65%6D%61%69%6C

    sembra la stessa cosa, ma nel secondo caso sei sicuro che i caratteri particolari (come in questo caso la "è") vengono passati senza problemi alla pagina ASP

    la funzione è la seguente

    codice:
    <%
    Public Function asciitohex(testo)
    Dim i, t, testo2, s
    testo2 = ""
    For i = 1 To Len(testo)
    t = Asc(Mid(testo, i, 1))
    s = Hex(t)
    If Len(s) = 1 Then s = "0" & s
    testo2 = testo2 & "%" & s
    Next
    asciitohex = testo2
    End Function
    
    response.write asciitohex("ciao questa è una email")
    %>
    tradurla in ACTIONSCRIPT è cosa da due minuti

    poi...

    questo potrebbe essere il problema come no (a me aveva causato spesso casini nel passaggio di dati fra programmi e pagine web)

    altro casino potrebbe essere la creazione della email in formato HTML, ma forse per quello dovrebbe bastarti

    codice:
    strTesto = server.HTMLencode("ciao questa è una email")
    che traduce tutti i caratteri speciali in formato HTML

    in questo caso "è" diventa "&#232;"





    prima prova con il semplice SERVER.HTMLENCODE prima di dare le stringe alle funzioni di CDOSYS...

    se poi ci sono ancora problemi potresti affrontare la questione del passaggio dati da FLASH a ASP

    fammi sapere se qualcosa non è chiaro e se il problema si risolve

    [/CODE]
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Prima di proseguire, premetto che non sono un programmatore e che per me l'ASP è ostico quanto l'arabo.
    La pagina ASP che utilizzo per l'invio di una mail è frutto di "razzie" sul web e di giornate passate a capire cose ovvie per un programmatore ma scognite per il sottoscritto.
    Detto questo, procedo dicendoti che le variabili vengono passate alla pagina ASP in maniera differente rispetto a come indichi tu, e cioè dal filmato flash viene richiamata la pagina ASP passando diversi valori (nome, cognome, indirizzo, telefono, ecc.).
    Sarà poi il codice ASP a comporre il corpo dell'email recuperando i valori delle variabili.
    Quindi, fare come consigli tu con strTesto = server.HTMLencode("ciao questa è una email") mi è impossibile dal momento che il corpo del testo non sono io a fornirlo, ma viene creato dinamicamente dal codice ASP.
    Ho fatto delle prove mettendo al posto della frase "ciao questa è una email" le variabili che mi interessano, ma non ottengo nessun risultato.
    A questo punto, se tu conosci un modo per applicare questo comando anche a del testo creato dinamicamente siamo a posto, altrimenti dovresti spiegarmi meglio come utilizzare l'altro metodo (quello in actionscript).

    Grazie
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  4. #4
    postami il contenuto della pagina ASP, così la correggo e mi capisci

    [ spesso (soprattutto se le conoscenze dall'altra parte sono parziali) non riesco a farmi capire bene... è un mio limite, cerco di porvi rimedio ]
    san imente saluta

    * http://simonecingano.it *

  5. #5
    Eccoti il codice. Come potrei notare, da questa pagina partono due email, una per l'azienda titolare del sito ed una di conferma all'utente.
    La pagina, cosi com'è, funziona perfettamente tranne che per il problema di cui sopra.

    <%
    Dim yodaToMail, yodaToConfig
    Set yodaToMail = createObject("CDO.Message")
    Set yodaToConfig = Server.createObject ("CDO.Configuration")

    With yodaToConfig

    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.cippalippa.xxx"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
    .Fields.update
    End With

    Set yodaToMail.Configuration = yodaToConfig

    yoda1From = Request.Form("nome_txt")
    yoda1From = yoda1From &" "& Request.Form("cognome_txt")
    yoda1From = yoda1From &" <"& Request.Form("mail_txt") &">"
    yodaToMail.From=yoda1From
    yodaToMail.To = "info@axxxx.xx"
    yodaToMail.Subject = "Richiesta informazioni da sito"
    bodyTo="Dati richiedente:<hr>"
    bodyTo=bodyTo & "Nome e Cognome: "& Request.Form("nome_txt") &" "& Request.Form("cognome_txt") &"
    "
    bodyTo=bodyTo & "Qualifica/ruolo all'interno dell'Azienda: "& Request.Form("qualifica_txt") &"
    "
    bodyTo=bodyTo & "Azienda: "& Request.Form("azienda_txt") &"
    "
    bodyTo=bodyTo & "Settore: "& Request.Form("settore_txt") &"
    "
    bodyTo=bodyTo & "Telefono: "& Request.Form("telefono_txt") &"
    "
    bodyTo=bodyTo & "Fax: "& Request.Form("fax_txt") &"
    "
    bodyTo=bodyTo & "Cellulare: "& Request.Form("cellulare_txt") &"
    "
    bodyTo=bodyTo & "E-mail: "& Request.Form("mail_txt") &"
    "
    bodyTo=bodyTo & "Indirizzo: "& Request.Form("indirizzo_txt") &"
    "
    bodyTo=bodyTo & "CAP: "& Request.Form("cap_txt") &"
    "
    bodyTo=bodyTo & "Città: "& Request.Form("citta_txt") &"
    "
    bodyTo=bodyTo & "Provincia: "& Request.Form("provincia_txt") &"

    "
    bodyTo=bodyTo & "Si acconsente al trattamento dei dati forniti in base al Decreto Legislativo 196/03.
    <hr>"
    bodyTo=bodyTo & "Informazione richiesta: "& Request.Form("informazione_txt") &"
    <hr>"
    bodyTo=bodyTo & "Una e-mail di conferma è sta inviata a "& Request.Form("mail_txt") &".
    <hr>"
    bodyTo=bodyTo & "Richiesta effettuata il: "& now() &"
    "
    bodyTo=bodyTo & "Indirizzo I.P. richiedente: "& Request.ServerVariables("REMOTE_ADDR") &"

    "
    yodaToMail.HTMLBody = bodyTo

    yodaToMail.Send()

    Set yodaToMail = Nothing
    %>
    <%
    Dim yodaFromMail, yodaFromConfig
    Set yodaFromMail = createObject("CDO.Message")
    Set yodaFromConfig = Server.createObject ("CDO.Configuration")

    With yodaFromConfig

    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.cippalippa.xxx"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
    .Fields.update
    End With

    Set yodaFromMail.Configuration = yodaFromConfig

    yodaFromMail.From = "Segreteria <info@xxxx.xx>"
    yoda2From = Request.Form("nome_txt")
    yoda2From = yoda2From &" "& Request.Form("cognome_txt")
    yoda2From = yoda2From &" <"& Request.Form("mail_txt") &">"
    yodaFromMail.To = yoda1From
    yodaFromMail.Subject = "Conferma invio richiesta informazioni"
    bodyFrom="Gentile Utente, di seguito sono riportati i dati da Lei inviati in data "& now() &".
    <hr>"
    bodyFrom=bodyFrom & "Nome e Cognome: "& Request.Form("nome_txt") &" "& Request.Form("cognome_txt") &"
    "
    bodyFrom=bodyFrom & "Qualifica/ruolo all'interno dell'Azienda: "& Request.Form("qualifica_txt") &"
    "
    bodyFrom=bodyFrom & "Azienda: "& Request.Form("azienda_txt") &"
    "
    bodyFrom=bodyFrom & "Settore: "& Request.Form("settore_txt") &"
    "
    bodyFrom=bodyFrom & "Telefono: "& Request.Form("telefono_txt") &"
    "
    bodyFrom=bodyFrom & "Fax: "& Request.Form("fax_txt") &"
    "
    bodyFrom=bodyFrom & "Cellulare: "& Request.Form("cellulare_txt") &"
    "
    bodyFrom=bodyFrom & "E-mail: "& Request.Form("mail_txt") &"
    "
    bodyFrom=bodyFrom & "Indirizzo: "& Request.Form("indirizzo_txt") &"
    "
    bodyFrom=bodyFrom & "CAP: "& Request.Form("cap_txt") &"
    "
    bodyFrom=bodyFrom & "Città: "& Request.Form("citta_txt") &"
    "
    bodyFrom=bodyFrom & "Provincia: "& Request.Form("provincia_txt") &"
    <hr>"
    bodyFrom=bodyFrom & "Informazione richiesta: "& objInfo &"
    <hr>"
    bodyFrom=bodyFrom & "Sarà presto contattato dal nostro personale in relazione alle informazioni da Lei richieste.

    E' possibile cancellare o modificare i Suoi dati personali scrivendo a info@xxxx.xx facendone esplicita richiesta.
    Si ricorda che i dati inviati saranno trattati in base al Decreto Legislativo 196/03.

    Distinti saluti
    <hr>
    "
    yodaFromMail.HTMLBody = bodyFrom

    yodaFromMail.Send()

    Set yodaFromMail = Nothing
    %>


    Grazie mille
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  6. #6
    bodyFrom=bodyFrom & "Informazione richiesta: "& objInfo &"
    <hr>"
    Piccolo errore!

    La riga quotata deve essere così:
    bodyFrom=bodyFrom & "Informazione richiesta: "& Request.Form("informazione_txt") &"
    <hr>"


    Aiuto!
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  7. #7
    codice:
    yodaToMail.HTMLBody = bodyTo
    yodaToMail.Send()
    diventa

    codice:
    yodaToMail.HTMLBody = Server.HTMLencode(bodyTo)
    yodaToMail.Send()
    questo era il caso dell'encoding HTML
    san imente saluta

    * http://simonecingano.it *

  8. #8
    La prova l'avevo già fatta, e questo era quello che arriva con l'email:

    Gentile Utente, di seguito sono riportati i dati da Lei inviati in data 02/03/2005 0.36.43.
    <hr>Nome e Cognome: quadro di legno
    Qualifica/ruolo all'interno dell'Azienda:
    Azienda:
    Settore:
    Telefono:
    Fax:
    Cellulare:
    E-mail: marino@yodastudio.com
    Indirizzo:
    CAP:
    Città:
    Provincia:
    <hr>Informazione richiesta: [b]4 righe.
    nfo@xxxx.xx facendone esplicita richiesta.
    Si ricorda che i dati inviati saranno trattati in base al Decreto Legislativo 196/03.

    Distinti saluti
    <hr>
    "


    In pratica tutto il testo viene formattato in questo modo, come se non venisse interpretato il codice html.
    Inoltre, il testo del campo in questione (informazione_txt) continua a presentare gli stessi problemi. Infatti, non solo gli accapo vengono considerati come errori (quello scritto dopo non viene visualizzato) ma una viene eliminata una parte del testo successivo (vedi testo in rosso al quale manca la prima parte "Sarà presto contattato dal nostro personale in relazione alle informazioni da Lei richieste.

    E' possibile cancellare o modificare i Suoi dati personali scrivendo a i
    ").

    Ancora non va!
    Ma io mi chiedo, come fanno tutti i siti del mondo che usano sistemi di questo tipo e non hanno lo stesso problema?
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  9. #9
    penso che tu debba impostare l'invio in formato HTML e non PLAIN TEXT

    ma forse basta il fatto che usi HTMLBODY

    lo saprei fare in CDONTS (non uso CDOSYS)...

    guardati un momento un tutorial di base e dovresti capirlo...

    oppure se qualcuno del forum usa CDOSYS (credo proprio di si) potrà aiutarti...

    i'm sorry uso CDONTS :P (e non ho CDOSYS installato )
    san imente saluta

    * http://simonecingano.it *

  10. #10
    Infatti il testo è impostato in HTML, quello che ho riportato prima avviene soltanto se effettuo la sostituzione che hai indicato (yodaToMail.HTMLBody = Server.HTMLencode(bodyTo) al posto di yodaToMail.HTMLBody = bodyTo).

    Adesso do un'occhiata alle varie guide in rete, anche se confido sempre nell'aiuto di qualcuno che ha avuto lo stesso problema (ed ovviamente l'ha risolto!).

    Grazie
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.