Domanda

Desidero creare una pagina Web per la creazione di posta lato client.Conosco i problemi legati all'utilizzo dell'azione mailto in un modulo html (non standard, nessuna applicazione di posta predefinita impostata sul client).Ma la pagina web non è molto importante e a loro non interessa molto.

La posta creata dall'azione mailto ha la sintassi:

soggetto:soggetto indefinito
corpo:

parametro1=valore1
parametro2=valore2
.
.
.
paramn=valore

Posso utilizzare JavaScript per formattare la posta in questo modo?

Oggetto:XXXX

Corpo:Valore1;Valore2;Valore3...ValoreN

È stato utile?

Soluzione

Ciò che abbiamo utilizzato in un progetto è una finestra popup che apre un mailto:link, è l'unico modo che abbiamo trovato per comporre un messaggio di posta all'interno del client di posta predefinito che funziona con tutti i client di posta (almeno con tutti i nostri client utilizzati).

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
var subject = ""//between the speech marks goes the subject of the message
var href = "mailto:" + addresses + "?"
         + "subject=" + subject + "&"
         + "body=" + body;
var wndMail;
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
if(wndMail)
{
    wndMail.close();    
}

Altri suggerimenti

Hai più o meno solo due alternative quando invii posta tramite il browser..

  1. crea una pagina che riceva l'input dell'utente e consenta loro di inviare la posta tramite il tuo server web.Per questo è necessario un qualche tipo di scripting lato server.
  2. usa un mailto:collegamento per attivare l'apertura del client di posta registrato dell'utente.Questo presenta le ovvie insidie ​​​​che hai menzionato ed è meno flessibile.Ha bisogno di meno lavoro però.

Solo con Javascript, lo è non possibile.
Javascript non è destinato a fare queste cose ed è gravemente compromesso nel modo in cui può interagire con qualsiasi cosa diversa dal browser web in cui vive (per una buona ragione!).

Pensaci:uno spammer che scrive un sito Web con Javascript lato client che invierà automaticamente la posta a migliaia di indirizzi e-mail casuali.Se le persone andassero su quel sito parteciperebbero tutte ad una truffa di mailing di massa distribuita, con il proprio computer...nessuna infezione o interazione dell'utente necessaria!

Puoi creare un collegamento mailto e attivarlo utilizzando javascript:

  var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";  
  var mlink = document.createElement('a');
  mlink.setAttribute('href', mail);
  mlink.click();

C'è un motivo per cui non puoi semplicemente inviare i dati a una pagina che gestisce l'invio della posta?È abbastanza semplice inviare un'e-mail nella maggior parte delle lingue, quindi a meno che non ci sia un motivo valido per inviarlo al lato client, consiglierei questo percorso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top