2010-07-12 110 views
1

我有一個應用程序必須通過他的電子郵件客戶端將電子郵件返回給用戶,但在某些情況下,我必須傳遞大約1000封電子郵件。瀏覽器mailto問題?

我在HREF使用mailto,這樣的事情:

mailto:[email protected][email protected],[email protected],[email protected] 

爲什麼我回到他的電子郵件客戶端,而不是使用PHP mail()功能?
因爲用戶的發件人電子郵件取決於他正在使用哪臺計算機,他需要歸檔郵件郵件。

問題: 某些瀏覽器,如果電子郵件列表大於X,它將不會發送到他的首選電子郵件客戶端。

回答

8

您可以輸出完整的BCC列表並要求用戶複製粘貼。但是,如果您想將數千個電子郵件地址傳遞給用戶,那麼也許您應該重新考慮整個策略。

+0

我做了一個按鈕,可以生成所有電子郵件並將其複製到用戶的剪貼板。 ;)謝謝 – CuSS 2010-07-14 12:06:00

1

向用戶傳遞數千個電子郵件地址非常不尋常。

通常,更典型的應用程序會在服務器端使用PHP mail(),然後允許瀏覽任何已發送通知的存檔。郵件保持打開狀態並從Web服務器發送,但允許用戶查看過去發生了什麼。

在負面方面,這是一個更好的代碼,但可能是解決您遇到的問題的唯一方法; mailto:不適合大量使用。

+1

閱讀「爲什麼我要使用PHP mail()函數返回到他的電子郵件客戶端?」 – CuSS 2010-07-12 17:10:26

+0

你可以通過其他方式找出他們坐在哪臺電腦上;例如,查看「php get client hostname」。電子郵件仍然存檔在服務器上,稍後他們可以在那裏找到它們。 – 2010-07-12 19:44:45

2

這是因爲GET請求(以及此類鏈接是GET請求)的長度具有最大值。在某些瀏覽器上,它可能只有2083個字符。因此,任何超出該限制的電子郵件地址都不會發送到客戶端電子郵件程序。數千個電子郵件地址將突破限制。

2

對於任何非簡單的mailto:address而沒有參數,mailto:的URL是大量不可靠應該避免。網址長度問題只是個開始。

在某些情況下,我必須通過各地的1000封電子郵件

...

即使郵件有可能獲得URL處理,用戶的住宅ISP不太可能,甚至讓他們發送。

放棄。從PHP發送郵件。爲了存檔的目的,向用戶發送一份副本。