2014-06-22 41 views
0

我必須發送一封電子郵件給幾個收件人。我不希望標題顯示完整的收件人列表(即我沒有使用「Message.RecipientType.CC」)。如果我使用「Message.RecipientType.BCC」,則有可能將郵件發送到垃圾郵件。所以我使用Message.RecipientType.TO一次發送一封電子郵件。問題是這可能需要很長時間。我的問題是,是否可以爲每個要發送的電子郵件創建單獨的線程以提高性能。多線程的Javamail多重接收

+0

什麼是您的「全景圖」描述您的電子郵件需求(在什麼情況下)。你的Java應用程序只能執行電子郵件,還是更多的東西? (如果您只有電子郵件需求,還有其他一些選擇) – ErstwhileIII

+0

對不起,延遲迴復。我將發送各種通訊給很多收件人。 –

+0

使用MailChimp等商業服務可能會更好(每月免費提供12000封電子郵件)。 – ErstwhileIII

回答

1

您可以爲每條消息創建一個單獨的線程,這需要單獨連接到郵件服務器。根據您的郵件服務器,它可能會限制您可以使用的連接數量。

您也可以使用單個連接串行發送消息。同樣,根據您的郵件服務器,它可能會限制您可以通過單個連接發送的郵件數量。

+1

如果您要發送多封電子郵件,則需要做很多事情才能確保您發送的郵件不會被標記爲垃圾郵件......並確保您的服務每天不會超出電子郵件。 – ErstwhileIII

+0

@ErstwhileIII:謝謝你的提醒。我已經知道如何防止我的郵件被視爲垃圾郵件(在某種程度上),並且知道每天可以發送的電子郵件數量有限。關於您使用MailChimp的建議,有沒有辦法整合用MailChimp發送郵件與javamail? –

+0

@ Bill Shannon:我想分享一個Session對象與多個線程,並在每個使用Transport.send(mgs)。這會工作嗎?我想要使​​用多個線程來提高性能,因爲逐個發送消息的速度太慢。 Transport.send調用如何確定主機和其他設置?它是否以某種方式從消息對象中派生出來的? –