首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java批量电子邮件发件人

java批量电子邮件发件人
EN

Stack Overflow用户
提问于 2013-09-29 16:20:05
回答 2查看 1.7K关注 0票数 1

我需要设计一个java应用程序,可以发送喜欢200-300邮件每秒。如何做到这一点。我尝试过简单的Transport.send(),它一次发送一封邮件,但它本身大约需要2-3秒。另外,google smtp允许我每秒发送这么多邮件吗?!如何实现诸如批处理邮件发送之类的功能,或者多线程之类的功能能有所帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2016-11-22 17:26:26

Transport.send()不是发送大量邮件的有效方法,因为它将为每条消息打开新的连接。每条消息的平均时间约为4秒。

试试下面的代码:

代码语言:javascript
复制
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();
}

此外,您可以尝试使用具有固定线程数量的ThreadPool来实现,这取决于您所使用的系统。

票数 2
EN

Stack Overflow用户

发布于 2013-11-13 22:15:07

是的,您需要一个多线程服务器。正如您所写的,您将使用大约1000个线程进行发送,从CPU性能的角度来看,这在任何硬件上都是可行的,但您也必须有足够的内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19075892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档