2012-11-02 6 views
11

Gibt es eine bestimmte Zeichenfolge Größe für Outlook E-Mail. Ich habe den folgenden Code, der mir ein FehlerDer Datenbereich an einen Systemaufruf übergeben zu klein ist“

Der Datenbereich übergeben an einen Systemaufruf gibt, ist zu klein

jedoch nur das scheint aufzutreten, wenn mein Nachrichtentext größer als normal

document.location.href = "mailto:" + emailAddress + "?subject=my msgs Relief&body=" + escape(message); 

Wenn ich Code bin Entfernen dann ist es nicht diese Meldung zeigt. So Es scheint, dass es sich auf die Anzahl der Zeichen im E-Mail-Text bezieht. Bitte vorschlagen.

+0

Bitte Code angeben, wo 'Nachricht' generiert wird – LuigiEdlCarno

+0

Könnte es sein, dass einer der Werte, die Sie an Ihre Zeichenfolge anhängen,' null' ist? – LuigiEdlCarno

+0

Bitte geben Sie vollständige HTML und JS. Sie können Ihren Code hier einfügen: http://jsfiddle.net/ – maxwell

Antwort

4

Es schlägt wahrscheinlich fehl, weil whitespaces von einigen E-Mail-Clients nicht als Teil der href akzeptiert werden, also müssen Sie sie verschlüsseln (escape), sodass sie% 20 werden.

Versuchen Sie folgendes:

document.location.href = "mailto:" + emailAddress + "?subject=my%20msgs%20Relief&body=" + escape(message);

6

ich auf dieses genaue Problem vor kurzem kam. Das Problem besteht darin, dass bei verschiedenen Browsern (und bei verschiedenen E-Mail-Clients) die Datenmenge begrenzt ist, die zwischen ihnen mithilfe von E-Mail-Links ausgetauscht werden kann.

Zum Beispiel beträgt die maximale URL-Länge im Internet Explorer 2.083 Zeichen (MS KB Link). Wenn die Gesamtlänge Ihres Links, einschließlich Betreff, Adresse und Nachrichtentext, diesen Wert überschreitet, erhalten Sie genau diesen Fehler.

dies zu beheben (wie wir IE unterstützen müssen), habe ich diese Flickschusterei nach meinem Link zu erzeugen:

var mailto_link = 'mailto:'+addresses+'?subject='+subject+'&body='+body_message; 
win = window.open(mailto_link.substr(0,2000),'emailWindow'); 

Es ist nicht perfekt, aber bei den seltenen Gelegenheiten der Benutzer versucht, eine enorme Benachrichtigung E-Mail zu erzeugen, Sie werden zuerst höflich gewarnt, während der Veranstaltung erinnert und benachrichtigt.

Verwandte Themen