는 내가 EJB를 ussing 이메일을 보내려고하지만 난 유일한 것은 내가이 예외의 대가로 얻을 :은 (자바 EE-6)
java.lang.RuntimeException: javax.mail.AuthenticationFailedException: failed to connect, no password specified?
이 얼마나 내 EJB 다음과 같습니다
@Stateless(name = "ejbs/EmailServiceEJB")
public class EmailServiceEJB extends Authenticator implements IEmailServiceEJB {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]",
"xxxxxxx");
}
public void sendAccountActivationLinkToBuyer(String destinationEmail,
String name) {
// OUR EMAIL SETTINGS
String host = "smtp.gmail.com";// Gmail
int port = 465;
String serviceUsername = "[email protected]";
String servicePassword = "xxxxxxx";// Our Gmail password
Properties props = new Properties();
props.put("mail.smtp.user", serviceUsername);
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", port);
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
// Destination of the email
String to = destinationEmail;
String from = "[email protected]";
// Creating a javax.Session with the our properties
Session session = Session.getInstance(props);
try {
Message message = new MimeMessage(session);
// From: is our service
message.setFrom(new InternetAddress(from));
// To: destination given
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
message.setSubject("Comfirm your account");
// Instead of simple text, a .html template should be added here!
message.setText("Welcome....... ");
Transport transport = session.getTransport("smtp");
transport.connect(host, port, serviceUsername, servicePassword);
Transport.send(message, message.getAllRecipients());
transport.close();
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}는 암호가 지정되지 않은 것을 말하는 계속 내가 왜 해달라고
알고? SSLSocketFactory와 관련이 있습니까? 어딘가에서 getPasswordAuthenticion() 메서드를 호출해야합니까, 아니면 내 관리 빈에서 두 번째 메서드를 호출하면 필요한 것입니까?
GlassFish와 같은 응용 프로그램 서버를 사용하고 있습니까? – musiKk
예 글래스 피시 3.0 – sfrj