i'm trying send bulk emails using spring mvc. here code:
if(customerclients != null){ int count = 0; boolean sent = false; list<mimemessagepreparator> preparators = new arraylist<mimemessagepreparator>(); (bulkemail client : customerclients) { if(customerid==-1) customerid = client.getcustomerid(); customeraccount customeraccount = service.getcustomeraccount(client.getcustomerid()); if (instantmessage.isemailchecked() && customeraccount.getbalance()>0) { try{ final string receiverid = client.getemail(); instantmessage.setipersonorgroupvalue(receiverid); preparators.add(new mimemessagepreparator() { public void prepare(mimemessage mimemessage) throws exception { final mimemessagehelper message = new mimemessagehelper(mimemessage, true, "utf-8"); message.setsubject(instantmessage.getsubject()); message.setto(receiverid); message.setfrom(from); message.settext(instantmessage.getmessage(), true); } }); sent = false; } catch(exception ex){ ex.printstacktrace(); } } ++count; if(count%100==0){ springmail.send(preparators); preparators = new arraylist<mimemessagepreparator>(); sent = true; } } if(!sent) springmail.send(preparators); here code uses javamailsender sending preparators:
public void send(list<mimemessagepreparator> preparatorslist) { mimemessagepreparator[] preparators = preparatorslist.toarray(new mimemessagepreparator[preparatorslist.size()]); mailsender.send(preparators); } the problem code takes around 1 second per email address. means 300 emails in 5 minutes. want know if normal or there can improve.
thanks
Comments
Post a Comment