Javamail,Transport.send()非常慢 [英] Javamail, Transport.send() very slow
本文介绍了Javamail,Transport.send()非常慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经编写了一种批量发送电子邮件的方法,但是它非常非常慢(每10秒大约发送3封邮件).我想发送数千封邮件.有什么方法可以更快地做到这一点?
I have written a method for sending emails in bulk but it is very very slow (around 3 mails every 10 seconds). I want to send thousands of mails. Is there any way to do this much more faster?
我现在正在使用gmail,但仅用于测试,最后我想使用自己的SMTP服务器进行发送.
I am using gmail now but only for test, finally I want to send using my own SMTP server.
这是代码:
public boolean sendMessages()
{
try
{
Session session = Session.getInstance(this._properties, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("user", "password");
}
});
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(this.getFrom()));
message.setSubject(this.getSubject());
message.setText(this.getBody());
for (int i = 0, c = this._addresses.size(); i < c; i++)
{
message.setRecipient(Message.RecipientType.TO, new InternetAddress(this._addresses.get(i)));
Transport.send(message);
}
return true;
}
catch(AuthenticationFailedException e) {
e.printStackTrace();
return false;
}
catch(MessagingException e) {
e.printStackTrace();
return false;
}
}
推荐答案
好的,谢谢您的建议.
我的解决方法是:
Transport transport = session.getTransport("smtp");
transport.connect(this._properties.getProperty("mail.smtp.host"),
Integer.parseInt(this._properties.getProperty("mail.smtp.port")),
this._properties.getProperty("mail.smtp.user"),
this._properties.getProperty("mail.smtp.password"));
Address[] addr = new Address[this._addresses.size()];
for (int i = 0, c = this._addresses.size(); i < c; i++)
{
addr[i] = new InternetAddress(this._addresses.get(i));
}
transport.sendMessage(message, addr);
这篇关于Javamail,Transport.send()非常慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文