SMTP测量和评估

时间:2016-09-14 19:05:47

标签: java smtp javamail

我正在尝试了解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服务器?

1 个答案:

答案 0 :(得分:1)

JavaMail不会为你做这件事。您需要一些性能分析工具。找到您喜欢的,然后将其应用于此任务。或者只是使用System.currentTimeMillis()来做一些简单的事情来测量操作所花费的时间。

另见JavaMail FAQ entry for sending multiple messages with a single connection