저는 학교 프로젝트 용 프로그램에서 이메일을 보내기 위해 JavaMail을 사용하려고했습니다. 나는 그것을 작동하게 만들었지 만 지금은 가끔씩 만 작동합니다. 정말로, 내가 어디에 있는지는 (학교, 집, 카페에서) 때로는 효과가 있고 때로는 효과가 없다.JavaMail이 가끔 Gmail에 연결하는 경우가 있습니다. 무작위로 보입니다
내가 오류 메시지는 다음과 같습니다 javax.mail.MessagingException : 스레드 "AWT-EventQueue의-0"java.lang.RuntimeException가에서
예외는 SMTP 호스트에 연결할 수 없습니다 : smtp.gmail합니다. com, 포트 : 465; 상자의 예외는 다음과 같습니다 java.net.ConnectException : 연결 시간 초과 : varsling.SendEmail.sendEmail에서 를 연결 (SendEmail.java:40는)
이상한 것은 내가의 코드를 변경 아니에요이다 어쨌든. JavaMail과 Gmail 연결에 문제가 있습니까? 내가 어떤 웹 사이트의 예에서 볼 무엇을 (어쨌든
, 여기에 내 코드 : 정말 아무것도에 setFrom()을 변경하는 데 도움이되지 않습니다import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendEmail {
public void sendEmail(String text, String to, String username, String password) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
message.setSubject("Danger!");
message.setText(text);
Transport.send(message);
System.out.println("Sent");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
} }
, 그래서 나는 기본값으로 넣어 몇 주 전).
수정 프로그램이있는 사람이 있습니까? : S
고마워요!
나를 위해 괜찮아 보입니다. 그리고 시간에 따라 보이는 것은 없습니다. 나는 통신 실패를 지적 할 것이다. 실패하면 'telnet smtp.gmail.com 465'을 실행하고 서버가 응답하는지 또는 연결이 거부/시간 초과되었는지 확인하십시오. – SJuan76