我正在尝试了解SMTP的工作原理(JAVAMAIL API)。
我写了一个代码,将消息发送到给定的地址列表。
我用作SMTP服务器的属性:
mail.smtp.auth= true
mail.smtp.starttls.enable= true
mail.smtp.host= smtp.gmail.com
mail.smtp.port= 587
发送电子邮件代码是:
public void sendEmail(String emailRecip, String subject, String texte) {
boolean isMsgSent = false;
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
String address = emailRecip;
InternetAddress[] iAdressArray = InternetAddress.parse(address);
message.setRecipients(Message.RecipientType.TO,iAdressArray);
message.setSubject(subject);
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(texte);
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
message.setContent(mp);
Transport.send(message);
isMsgSent = true;
} catch (MessagingException e) {
//...
}
}
此代码效果很好,但我想知道我怎么能:
1-计算邮件传递的存档时间
2-计算消息大小的影响
3-评估在同一SMTP上发送多封邮件的影响
我发现许多文档都对这些问题有所了解,但我不知道如何将它放在代码示例中,是否还有其他属性我必须将其添加到SMTP服务器?
答案 0 :(得分:1)
JavaMail不会为你做这件事。您需要一些性能分析工具。找到您喜欢的,然后将其应用于此任务。或者只是使用System.currentTimeMillis()来做一些简单的事情来测量操作所花费的时间。
另见JavaMail FAQ entry for sending multiple messages with a single connection。