这是我的代码。任何人都可以告诉我为什么它会向单身人士发送两次电子邮件 我只需要发一封邮件。我会改变以获得正确的结果吗?
public void dbbackup_notify(String email, String data, String subject) {
String toEmails = email;
Session session = Session.getInstance(props, newjavax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, pass);
}
});
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(userid));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmails));
message.setSubject(subject);
message.setText(data);
message.setContent(data, "text/html");
transport = session.getTransport("smtp");
transport.connect(host, user, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("Sent Successfully: " + new Date());
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("Don't Send Successfully" + new Date());
}
}
答案 0 :(得分:1)
显而易见的答案是因为你要两次打电话。你怎么知道你不是?
当您从程序中收到两条消息时,它们是否都具有相同的消息ID?
如果你调用session.setDebug(true),你会看到消息被发送两次吗?
BTW,请注意setContent只是覆盖了setText的作用;你不需要两者兼而有之。声明消息为MimeMessage类型,然后用message.setText替换两个set调用(数据," utf-8"," html");
另请注意您don't need the Authenticator,因为您在连接通话中传递了用户名和密码。