Javamail在公​​司使用outlook

Ana*_*nas 5 java jakarta-mail

我第一次使用 javamail,遇到了一些我不明白的异常,我在这里也看到了其他问题中的一些错误,但它们的答案对我没有帮助。这是我的代码。

        final String username = "imsan1@cdcpk.com";
        final String password = "**********";
        Properties props = System.getProperties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "10.1.136.26");
        props.put("mail.smtp.port", "25");
        props.put( "mail.smtp.user" , username );
        props.put( "mail.smtp.password" , password );

        Session session = Session.getInstance(props,
          new SmtpAuthenticator(username, password)
          );


        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("imsan1@cdcpk.com"));
            message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("immni1@cdcpk.com"));
            message.setSubject("Testing Subject");
            message.setText("Dear Mail Crawler,"
                + "\n\n No spam to my email, please!");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
Run Code Online (Sandbox Code Playgroud)

SMTP验证器

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;


class SmtpAuthenticator extends Authenticator {
     String user;
     String pw;
     public SmtpAuthenticator (String username, String password)
     {
        super();
        this.user = username;
        this.pw = password;
     }
    public PasswordAuthentication getPasswordAuthentication()
    {
       return new PasswordAuthentication(user, pw);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误日志

Exception in thread "main" java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 250-CDC-HO-CAS1.cdcpk.com Hello [10.1.34.74]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST

    at org.cdc.eipo.bean.investorsetup.EmailController.main(EmailController.java:64)
Caused by: javax.mail.AuthenticationFailedException: 250-CDC-HO-CAS1.cdcpk.com Hello [10.1.34.74]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at org.cdc.eipo.bean.investorsetup.EmailController.main(EmailController.java:59)
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助

Ana*_*nas 6

该代码工作正常,它给出错误的原因是因为我没有获得 SMTP 服务器的权限,因此显示异常,在配置访问权限后,邮件已发送。