2012-11-02 118 views
11

是否有Outlook電子郵件某些字符串大小。我有以下的代碼,給我一個錯誤傳遞給系統調用的數據區域太小,」

傳遞給系統調用的數據區域太小

然而,這似乎只當我的消息體越大則正常

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

如果我刪除代碼,那麼它沒有顯示此消息出現。所以它接近它與電子郵件正文中的字符數量有關。請建議。

+0

請提供代碼,其中產生'message' – LuigiEdlCarno

+0

是否可以,您追加到您的字符串的任何值都是'null'? – LuigiEdlCarno

+0

請提供完整的HTML和JS。你可以在這裏粘貼你的代碼:http://jsfiddle.net/ – maxwell

回答

4

它可能會失敗,因爲某些電子郵件客戶端不接受空白作爲href的一部分,所以您需要對它們進行URI編碼(轉義),以便它們變爲%20。

試試這個:

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

6

我最近碰到這個確切的問題就來了。問題在於不同的瀏覽器(和不同的電子郵件客戶端)使用郵件鏈接可以在它們之間傳遞的數據量有限制。

例如,Internet Explorer中的最大URL長度爲2,083個字符(MS KB Link)。如果包括主題,地址和主體在內的鏈接總長度超過此長度,則會發生這種錯誤。

爲了解決這個問題(因爲我們要支持IE),我用這個雜牌生成我的鏈接之後:

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

它並不完美,但在少數情況下,用戶嘗試產生了巨大的電子郵件通知,他們首先被禮貌地警告,在事件期間提醒並在事件發生後通知。

相關問題