2010-11-01 11 views
8

ho un link mailto in un tag di ancoraggioCome muoversi limite di caratteri mailto/href/url

<a href="mailto:?subject=Subject&body=Body">Email This</a> 

Il problema è che il parametro corpo è un articolo enorme, e sembra che vi sia un limite di caratteri sulla url.

C'è un modo per aggirare il limite?

risposta

9

C'è un modo per aggirare il limite?

Molto difficilmente.

È anche probabile che le limitazioni varino da browser a browser o da client di posta elettronica a client di posta elettronica.

Preferisco utilizzare un modulo HTML e uno script sul lato server per inviare il messaggio.

+0

Non voglio inviare messaggio. Voglio che funzioni come un normale collegamento mailto, in cui l'utente può inviare un'e-mail tramite il proprio client di posta. – HyderA

+0

@gAMBOOKa Vedo. Potresti essere sfortunato per quello ... Forse potresti inviare un link alle informazioni? –

+0

Sì, credo che un estratto e un collegamento dovranno fare. Grazie! – HyderA

7

Sì, esiste un limite per la lunghezza dell'URL.

Il limite varia da browser a browser, quindi è necessario mantenere l'URL al di sotto di 2000 caratteri per essere sicuri.

Internet Explorer sembra essere il browser che sta avendo il limite più breve. Secondo this article sono 2083 caratteri.

+1

Questo vale anche per href = "" che era un problema per il mio href = "javascript: new Array (.....)" (array molto lungo) – Spork

0

Sì, ci sono problemi con il tag Mailto che varia da browser a browser e client di posta elettronica al client di posta elettronica . In caso di problemi, provare lo script lato server per risolvere questo problema. Mailto a volte si comporta molto anormale

+1

La risposta sembra simile ad altre che sono già pubblicate e non è molto utile. Avete altri dettagli da aggiungere? – VKen

-1

So che questa domanda è vecchia, ma ho avuto un problema simile, raggiungendo il limite in quanto avevo bisogno di inviare l'e-mail in molti destinatari.

mi sono imbattuto in questo solution, ma non capisco perché funziona, lo lascio qui comunque

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); 
    } 
} 

utilizzo:

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

Funziona dividendo le e-mail elencate in 'mailto' se l'url è troppo grande e chiama' mailto' manualmente per ogni set di e-mail affettato. Funziona solo se ci sono troppe email (a differenza di un grande corpo chiesto nelle domande originali) e crea più bozze di email nel client di posta. – HyderA

+0

non può essere esteso per funzionare sul corpo della posta? – Omid

+0

No, creerà più email con parti del corpo. – HyderA

Problemi correlati