使用JavaMail API发送批量邮件的更好方法

时间:2011-11-28 06:40:38

标签: smtp javamail email-client

使用JavaMail API发送批量邮件是否有更好的方法。我使用以下方法。

enter code here Transport tr = session.getTransport("smtp");
tr.connect(smtphost, username, password);
tr.sendMessage(msg, msg.getAllRecipients());
  

我曾经使用相同的连接发送'n'个邮件。   我有任何其他单独的方式来发送批量邮件。请帮助我获得更好的解决方案。

2 个答案:

答案 0 :(得分:0)

你想以什么方式“更好”?

您可以使用多个线程并行发送更多消息, 达到您的邮件服务器允许的限制。

答案 1 :(得分:0)

您可以使用线程池,因为它可以提供非常好的性能。我已经实现并分享了下面的代码片段。

try { 
    ExecutorService executor = Executors.newFixedThreadPool("no. of threads");     
    // no. of threads is depend on your cpu/memory usage it's better to test with diff. no. of threads. 
    Runnable worker = new MyRunnable(message); 
    // message is the javax.mail.Message 
    executor.execute(worker); 
    executor.shutdown();     
    executor.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS); 
}