2010-11-01 3 views

Répondre

9

Existe-t-il un moyen de contourner la limite?

Très difficilement.

Il est même probable que les limitations varient d'un navigateur à l'autre, ou d'un client de messagerie à un client de messagerie. Je préférerais utiliser un formulaire HTML et un script côté serveur pour envoyer le message.

+0

Je ne veux pas envoyer un message. Je veux que cela fonctionne comme un lien mailto régulier, où l'utilisateur peut envoyer un email via son client de messagerie. – HyderA

+0

@gAMBOOKa Je vois. Vous pourriez ne pas avoir de chance pour ça ... Peut-être envoyer un lien vers l'information à la place? –

+0

Oui, je suppose qu'un extrait et un lien devront faire. Merci! – HyderA

7

Oui, la longueur de l'URL est limitée.

La limite varie d'un navigateur à l'autre, vous devriez donc garder l'URL en dessous de 2000 caractères pour être sûr.

Internet Explorer semble être le navigateur ayant la limite la plus courte. Selon this article c'est 2083 caractères.

+1

Cela vaut aussi pour href = "" ce qui était un problème pour mon href = "javascript: new Array (.....)" (tableau très long) – Spork

0

Oui, il existe des problèmes avec le tag Mailto qui varie d'un navigateur à l'autre et d'un client de messagerie au client de messagerie . En cas de problème, essayez le script côté serveur pour résoudre ce problème. Mailto parfois se comporte très anormale

+1

La réponse semble similaire à d'autres qui sont déjà affichés et ne sont pas très utile. Avez-vous plus de détails à ajouter? – VKen

-1

Je sais que cette question est ancienne, mais j'ai eu un problème similaire, atteignant la limite que j'avais besoin d'envoyer l'e-mail dans de nombreux destinataires.

je suis tombé sur cette solution, mais je ne comprends pas pourquoi cela fonctionne, je laisse ici de toute façon

function sendEmails(emails) { 
    var timeout = 2000; 
    var mailtoPrefix = 'mailto:?bcc='; 
    var maxUrlCharacters = 1900; 
    var separator = ';'; 
    var currentIndex = 0; 
    var nextIndex = 0; 

    if (emails.length < maxUrlCharacters) { 
    window.location = mailtoPrefix + emails; 
    return; 
    } 

    do { 
    currentIndex = nextIndex; 
    nextIndex = emails.indexOf(separator, currentIndex + 1); 
    } while (nextIndex != -1 && nextIndex < maxUrlCharacters) 

    if (currentIndex == -1) { 
    window.location = mailtoPrefix + emails; 
    } else { 
    window.location = mailtoPrefix + emails.slice(0, currentIndex); 
    setTimeout(function() { 
     sendEmails(emails.slice(currentIndex + 1)); 
    }, timeout); 
    } 
} 
utilisation

:

var emails = '[email protected];[email protected];[email protected]'; 
sendEmails(emails); 
+1

Il fonctionne en divisant les emails listés dans 'mailto' si l'URL est trop grande et en appelant' mailto' manuellement pour chaque ensemble de courriels. Cela ne fonctionne que s'il y a trop de courriels (par opposition à un grand corps demandé dans les questions initiales) et il crée plusieurs brouillons de courrier électronique dans le client de messagerie. – HyderA

+0

ne peut-il pas être étendu pour travailler sur le corps de courrier? – Omid

+0

Non, il va créer plusieurs emails avec des parties du corps. – HyderA