我需要設計一個可以像200-300郵件/秒發送的Java應用程序。如何完成它。我嘗試了一次發送一個郵件的簡單的Transport.send(),但本身需要大約2-3秒。谷歌smtp也會讓我發送這麼多的郵件每秒?!如何實現像批量郵件發送或可以像多線程幫助?java批量電子郵件發件人
0
A
回答
1
是的,你需要一個多線程服務器。正如你寫的,你將使用大約1000個線程進行發送,從CPU性能角度來看這在任何硬件上都是可行的,但是你也必須有足夠的內存。
1
Transport.send()不是發送羣發郵件的有效方式,因爲它會爲每條消息打開新的連接。每封郵件的平均時間約爲4秒。
試試下面的代碼:
Session session = Session.getDefaultInstance(props,new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("FROM","PASSWORD");
}
});
Transport transport = session.getTransport("smtp");
transport.connect();
try{
for(Message m : messages) {
transport.sendMessage(m, m.getAllRecipients()); // time decreased to 2 second/message
}
}finally {
t.close();
}
而且您可以嘗試使用具有取決於您所遇到的系統固定數量的線程的線程池實現。
相關問題
- 1. 批量發送大量電子郵件
- 2. 批量電子郵件發件人和列表管理API
- 3. 批量電子郵件發送回覆
- 4. 以PHP發送批量電子郵件
- 5. 以C#發送批量電子郵件#
- 6. WinRT的批量發送電子郵件
- 7. C#發送批量電子郵件
- 8. 批量發送電子郵件
- 9. 批量發送電子郵件與SwiftMailer
- 10. 發送批量電子郵件
- 11. PHP發送批量電子郵件
- 12. 確定電子郵件發件人併發送電子郵件
- 13. java郵件 - 使用動態發件人電子郵件地址
- 14. 批量發送電子郵件(超過100個郵件)
- 15. 會員批量電子郵件軟件
- 16. 構建批量郵件發件人
- 17. 如何阻止我的電子郵件作爲批量電子郵件發送?
- 18. 將Excel鏈接到電子郵件。發送批量電子郵件
- 19. 如何發送批量電子郵件到不同的電子郵件ID
- 20. Java郵件不發送電子郵件
- 21. 電子郵件發件人凍結
- 22. 自動電子郵件發件人
- 23. Magento AdvancedSmtp發件人電子郵件
- 24. 第三方電子郵件發件人
- 25. PHP郵件$電子郵件= $ _ POST [ '電子郵件']在$收件人
- 26. 使用excel的批量電子郵件
- 27. MailGun中批量電子郵件驗證
- 28. 發送多個電子郵件批次
- 29. 發送電子郵件與Java不receving電子郵件
- 30. PHP:批量發送大量電子郵件
我認爲它不會被允許不僅通過谷歌,但也是由ISP。如果您以有害的方式使用垃圾郵件等,可能會遭到禁止或類似的行爲。 – porfiriopartida
別擔心。不會用它來發送垃圾郵件或其他東西。只需要爲某個項目設計一個這樣的系統。 –
Transport.send()本身不應該是一個限制,它可以處理200郵件/秒,特別是如果你使用多線程。問題是如果目標郵件服務器能夠收到快速的電子郵件?如果您使用SSL/TLS,那麼SSL/TLS也可能會顯着降低速度。 – Jk1