JavaMail API를 사용하여 대량 전자 메일 프로그램을 작성하고 있습니다. 전자 메일을 보내려는 Microsoft Exhange 서버가 있습니다. 내 프로그램을 실행할 때 나는 다음과 같은 오류가 발생합니다 :JavaMail SMTPSendFailedException
**com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1862)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1100)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at SendEmail.postMail(SendEmail.java:100)
at EmailGenerator.main(EmailGenerator.java:52)**
다음과 같이 메시지를 보내려고 내 코드의 일부는 다음과 같습니다
Properties props = new Properties();
props.put("mail.smtp.host", email_server);
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", true);
class EmailAuthenticator extends Authenticator {
String user;
String pw;
EmailAuthenticator (String FROM, String PASSWORD)
{
super();
this.user = FROM;
this.pw = PASSWORD;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, pw);
}
}
Session session = Session.getInstance(props, new EmailAuthenticator(USER, PASSWORD));
session.setDebug(debug);
System.out.println("Session created");
.. CREATED MESSAGE HERE...
Transport transport = session.getTransport("smtp");
transport.connect(exchange_server,user,password);
transport.send(msg);
transport.close();
은 내가 Exchange 서버에 대한 몇 가지 구성을 잃었 궁금 내 코드에 문제가 있습니까?
세계에서 가장 유용한 예외는 아닙니다. 'props.put ("mail.debug", "true");로 디버깅을 켜면 어떻게됩니까? –
Edward가 맞습니다. 서버에서 실제 SMTP 응답이 필요합니다. 확인할 수있는 또 다른 한가지는 서버가 Exchange 서버를 통해 메일을 보낼 수 있는지 여부입니다. 기본적으로 인증 된 사용자 만 허용됩니다. –
내 서버 인터넷이 동일한 문제로 작동하지 않는다는 것을 알았습니다. –