2011-11-29 96 views
1

我已經閱讀了很多有關避免mailto長度限制的頁面,但是我還沒有找到對我的問題的答案。我可以使用什麼來避免郵件大小限制?

我的問題是我無法從服務器發送郵件(使用PHP),因爲員工必須在他們的私人郵箱中保留其電子郵件的歷史記錄。

我必須打開郵件軟件客戶端,選擇一種類型的電子郵件後填寫一些字段。 我的選擇看起來像這樣的:

<select <!-- ... --> onchange="sendMailClientSide(this.value);"> 
    <!-- ... --> 
</select> 

和我的javascript功能:

function sendMailClientSide(refType) { 
    // ... 
    var dest = "[email protected]"; 
    var subj = "Why this doesn't work ?"; 
    var body = /* a very big body */; 

    var linkMailto = "?bcc="+dest+"&subject="+subj+"&body="+body; 
    document.location.href = "mailto:"+linkMailto; 
    // ... 
} 

對於某些類型的郵件,這個完美的作品。
但是對於超過1400個字符的主體,客戶端軟件無法打開。

我也嘗試過提交HTML表單。使用這種方法,限制似乎更高,但它仍然有一個限制,因爲它會失敗並帶有更大的郵件。 最後,我試圖切割身體(像這樣的「& body =」+ body1 +「& body =」+ body2 + ...),但它不起作用。

有人知道是否存在擴展郵件大小的Firefox插件嗎?或者像這樣的東西(來自客戶端的東西)?

+1

從帶BCC的服務器發送給發起者? –

+0

它可能與URL的長度有關 - 請參閱此問題:http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url –

+0

@Alex:我認爲在這個選項,但我希望郵件直接在發送郵箱。 – Totinette

回答

1

我不認爲這是直接可能的。正如你已經建議的那樣,也許用一個插件。

我的解決方法是爲用戶提供一個簡單的表單,該表單提交給服務器,然後直接發送郵件(根本不打開客戶端郵件程序)。因此,您可以輕鬆避免大小限制。

這樣做的問題是,用戶沒有他們已知的電子郵件界面,因此特殊的文本格式,自定義簽名和類似的東西將無法工作。

你將不得不根據格式化需求和誰是收件人來決定。

+0

所以問題是在Firefox和客戶端郵件之間傳輸電子郵件。我唯一的機會是開發一個程序(用C/C++語言)解析一個帶有特殊擴展名的文件(例如file.contentMail)並啓動客戶端郵件。當然,每個員工都必須安裝該軟件,並將這種類型的文件在Firefox參數中打開。 – Totinette

+0

@Totinette:是的,如果你真的需要使用'mailto:'。我真的會建議從郵件服務器上發送它。 – ZeissS

相關問題