用户在java中接收两次相同的电子邮件

时间:2014-10-22 08:54:09

标签: java email smtp

我使用下面的代码使用java发送电子邮件,我的项目在tomcat服务器上运行。 用户两次收到相同电子邮件的问题。 经过一些研究,似乎java正在发送两次电子邮件,任何人都可以帮助我处理它吗?

Properties props;
        Session session;
    try {
                props = new Properties();
                props.put("mail.smtp.auth", "true");
                props.put("mail.smtp.starttls.enable", "true");
                props.put("mail.smtp.host", "....");
                props.put("mail.smtp.port", "25");
                props.put("mail.smtp.connectiontimeout", "2000");
                props.put("mail.smtp.timeout", "2000");
                props.setProperty("charset", "utf-8");


                session = Session.getInstance(props,
                        new Authenticator() {
                            protected PasswordAuthentication getPasswordAuthentication() {
                                return new PasswordAuthentication(username, password);
                            }
                        });
    //            session.setDebug(true);
            } catch (Exception e1) {
                e1.printStackTrace();
            }

    try {
                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress(from));

                if (!to.equals("") && to != null) {
                    String[] toArray = to.split(";");
                    InternetAddress[] toList = new InternetAddress[toArray.length];

                    for (int i = 0; i < toArray.length; i++) {
                        toList[i] = new InternetAddress(toArray[i]);
                    }

                    message.addRecipients(Message.RecipientType.TO, toList);
                }
                if (!cc.equals("") && cc != null) {
                    String[] ccArray = cc.split(";");
                    InternetAddress[] ccList = new InternetAddress[ccArray.length];

                    for (int i = 0; i < ccArray.length; i++) {
                        ccList[i] = new InternetAddress(ccArray[i]);
                    }
                    message.addRecipients(Message.RecipientType.CC, ccList);
                }


                message.setSubject(subject);
                //message.setText(emailBody);
                message.setContent(emailBody, "text/html; charset=utf-8");
                Transport.send(message);

            } catch (MessagingException e) {
                throw new RuntimeException(e);
            }

1 个答案:

答案 0 :(得分:0)

一种在发送电子邮件时解决错误的方法,而且,当您想要从其他人那里做一些事情时,就是使用库。许多开发人员使用开源库,他们的错误总是少于自定义源代码。我建议你使用Apache commons Email Library 使用此link,您可以找到很多示例。