36

Es gibt eine maximale Länge für den Text im & Hauptteil eines mailto: Links. Laut einem meiner Mitarbeiter, das W3C veröffentlichen das Limit als 256 (Ich habe jedoch keinen Link, um dies zu untermauern).Effektive maximale mailto: Körperlängen

Wir integrieren mailto: Links sowohl in eine E-Mail als auch in eine Webseite und haben erfolgreich mehr als 256 Zeichen verwendet. Ab einem bestimmten Punkt beginnen die E-Mail-Clients und Browser jedoch, die Verbindung aufzuheben und den Link nicht zu öffnen.

Ich möchte die aktuellen maximalen Längen für das folgende erlaubt wissen:

Mail-Clients:

  • Outlook (2003, 2007, 2010)
  • Eudora (7.1 und/oder was auch immer die neueste Version ist)
  • Thunderbird (neueste Version)

Browser:

  • Firefox (3+)
  • IE (6, 7, 8)
  • iPhone Browser

Irgendwelche und alle Zahlen, die Sie dankbar empfangen wird zur Verfügung stellen kann.

+0

https://stackoverflow.com/a/33041454/1133275 – user1133275

Antwort

24

Der Standard definiert keine maximale Länge, so dass die Implementierung den Browsern und Mail-Clients überlassen bleibt (siehe IETF RFC 2368).

Microsoft-Produkten tun haben Grenzen gesetzt:

Andere Browser sind wahrscheinlich Längen aufzuarbeiten über die der ein angemessener E-Mail-Körper. Das iPhone hat kein dokumentiertes Limit, funktioniert aber mit bis zu 1MB Text.

Moderne Browser, die Daten-URLs (alles außer IE < 9) unterstützen, sollten in Ordnung sein.

+4

Link zum iPhone mailto Länge Test: http://www.benzado.com/blog/post/28/iphone-openurl-limit – jlev

+1

Vielen Dank.Es ist eine Schande, dass es nicht mehr Informationen über Mailto-Längen gibt, aber was Sie mir gegeben haben, ist besser als das, was ich vorher hatte :) –

+0

Beachten Sie, dass die neueste Version von "Microsoft Outlook Express" 2001 wurde dann umbenannt Windows Mail/Windows Live Mail, ich bin mir nicht sicher, ob diese die gleiche Einschränkung haben. – Peter

8

Für Browser mit JS-Konsolen, ein einfacher Test:

for (var i=2014; i>1600; i--) {var good=1; try {location.href='mailto:?body='+'a'.repeat(i)} catch (e) {good=0;} if (good==1) {console.log(i+13);break;}} 

(Die 13 ist für die Dauer von mailto:?body=.)

auf Firefox 32.0.3 diese produziert 2008 (Körperlänge 1995). Bei Thunderbird 31.2.0 werden alle 1.995 Zeichen in den Text der neuen E-Mail eingefügt.

Some say it's mainly OS-setting-dependent aber unter Windows konnte ich zumindest keinen Registrierungseintrag finden, der sich auf mailto mit einer Zahl nahe 2000 bezieht.

+0

Dieses Skript hat nicht für mich funktioniert. In Chrome und Firefox wird einfach gedruckt, was auch immer der Startwert von "i" ist, plus 13. Auch wenn die Anzahl so groß ist, dass die Seite selbst nicht genügend Speicher hat. – JHS

+0

@JHS, verifizierte Ihr Ergebnis unter Linux mit dem neuesten FF. Ich schätze, ein Update hat meine Testmethode zerstört, d. H., Wenn versucht wurde, 'window.location' auf eine zu lange URL zu setzen, wird kein Fehler wie bei der Veröffentlichung ausgelöst. – Kev

+0

Ich war auf Ubuntu 14.04 und versuchte es in Firefox und Chrome, dann auf einer VM von Windows 10 mit IE und Edge/Spartan. Ich habe versucht, das Limit zu finden, indem ich sehr große Zahlen in dein Originalskript lege (klein anfangen und aufarbeiten). Chrome hatte keinen Speicher mehr und zeigte den Bildschirm "Dead Page", während Firefox weiter tuckerte, bis der Prozess nicht mehr reagierte. Meistens scheinen die harten Grenzen nur von bestimmten Mail-Clients wie Outlook durchgesetzt zu werden. Ich zweifle nicht daran, dass dein Skript zu der Zeit funktioniert hat, als du es geschrieben hast. Die Browser hatten wahrscheinlich URL-Limits. – JHS