Java发送批量邮件,速度很慢

时间:2015-07-03 09:07:08

标签: java performance email mail-server

在我的邮件应用程序中,我想将批量邮件发送给很多人。 我们需要1000个人,所以1.000邮件。

我已经尝试通过将人员置于CC来减少金额,但是应用程序花费更多时间来发送邮件,速度与以前完全相同。

让我们拍邮件需要3到4秒, 所以:1.000 * 3s = 3000s或50Min

是否有更快捷的方式发送这些邮件?

我的代码:

public String sendMailWithCC(java.lang.String to,java.lang.String[] cc, java.lang.String from, java.lang.String message, java.lang.String title, java.util.ArrayList attachments){

        boolean succes = false;
//          Get system properties
        Properties props = System.getProperties();
        props.put("mail.smtp.host", "smtp-relay.com");
//          Get Session
        Session session = Session.getDefaultInstance(props,null);
        String errorMessage = "";
//             Define message

        Message mailmsg = new MimeMessage(session);
        try {
            mailmsg.setFrom(new InternetAddress(from));
            mailmsg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

            for(int i = 0; i<cc.length ; i++){
                mailmsg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));
            }


            mailmsg.setSubject(title);

            // create the message part 
            MimeBodyPart messageBodyPart = new MimeBodyPart();

            //fill message
            messageBodyPart.setContent(message, "text/html; charset=ISO-8859-1");
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);


            // Put parts in message
            mailmsg.setContent(multipart);


//              Send message
            Transport transport = session.getTransport("smtp");

//              authentication with mail server
            transport.connect();
            transport.sendMessage(mailmsg, mailmsg.getAllRecipients());
            transport.close();

            succes = true;

        }catch (Exception e){
            errorMessage = e.getMessage();
            e.printStackTrace();

        }

        if(succes == true){
            return null;
        }else{
            return "ERROR when sending email " + errorMessage;
        }
    }

0 个答案:

没有答案