为什么javax.mail端口从2525变为25

时间:2015-06-05 13:06:21

标签: java smtp port mandrill javax.mail

我使用mandrill发送邮件。端口设置为2525

props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
//props.put("mail.smtp.**ssl.enable", "true");
//props.put("mail.smtp.**ssl.required", "true");
props.put("mail.smtp.host", settings.host);
props.put("mail.smtp.port", settings.port);

我确信所有设置都有效。

然后我设置验证器

authenticator = new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(settings.username, settings.password);
    }
};

然后发送邮件

Session session = Session.getInstance(props, authenticator);
session.setDebug(true);
try {
    Message message = mail.getMessage(session); 
    Transport.send(message);
    System.out.println("Done");
    return true;
} catch (MessagingException e) {
    e.printStackTrace(System.err);
    return false;
}

Debug说我在第25个端口发送邮件

DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.mandrillapp.com", port 25, isSSL fal
se
220 smtp.mandrillapp.com ESMTP
DEBUG SMTP: connected to host "smtp.mandrillapp.com", port: 25

我试图创造" smtps"运输,但这没有任何帮助。 Mandrill说我可以使用端口2525(或587等)。我还使用具有相同凭据的linux服务器上的postfix发送端口2525。

1 个答案:

答案 0 :(得分:1)

错误非常愚蠢)

props.put("mail.smtp.port", settings.port);
此行端口中的

int值,当我将port字段更改为String时,它开始工作。