Update: Two years before this question, a similar question was asked: Effective maximum mailto: body lengths as pointed out by Peter O. Luckily answers
Just for reference I've found that google chrome's latest build (23.0.1271.95) only lets me generate a mailto with a maximum length of:
1910 characters
If I am using JavaScript function to build the mailto URL (with dynamic title and body) then calls window.open(url) to launch the default EMail client, the max length of this URL seems to be much shorter. EMail client won't be activated if the URL is too long.
Here is the max length that works for browsers running on Windows only.
Safari and most email clients have no hard limit (depends on available CPU and RAM)
2015 Web Browser Testing:
2015 Email Client Testing:
2017 update
Chrome 61 still works with 2097132 length on macOS (16 GB RAM);
navigator.userAgent;
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
location.href='mailto:?body='+'a'.repeat(2097132);
According to @Chloe on windows (32 GB RAM) it's limited to 1800;
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
Unfortunately browsers and various clients very loosely comply with RFC documents, but to answer your question you can have a look at this answer
Firefox does not impose any limits on the length of URLs other than the system's available memory, so you'll have to look into operating system limits for the maximum length of the parameters when invoking a process.
Additionally, you can set a Web app as your mailto URI scheme handler, and in that case the limit depends on the server accepting the request. Firefox comes with a few options like Gmail and Yahoo! Mail, and you can register your own handler with navigator.registerProtocolHandler. If you're curious, open about:config and filter on "gecko.handlerService.schemes" to see the Web app handlers you have configured in your browser.
I can't say for other browsers, but once you start to depend on so many different variables (browser, available memory, OS, server), it's probably best to try a different strategy.