Java 코드를 통해 전자 메일을 보내고 싶습니다. 내 라이브러리에 다음을 추가했습니다 .JARs : log4j.jar, smtp.jar, mailapi.jar, ctivation.jar. 그리고 내 자바 클래스는 다음과 같습니다Java를 사용하여 전자 메일을 보내면 gmail 호스트에 연결하면 응답이 없습니다.
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail
{
public static void main(String [] args)
{
String to = "[email protected]";
String from = "[email protected]";
String host = "smtp.gmail.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.smtp.auth", "true");
SmtpAuthenticator authentication = new SmtpAuthenticator();
javax.mail.Message msg = new MimeMessage(Session
.getInstance(properties, authentication));
try {
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress(to));
msg.setSubject("Subject");
msg.setText("Working fine..!");
System.out.println("fine1 !!");
Transport transport = Session.getDefaultInstance(properties , null).getTransport("smtp");
System.out.println("fine2 !!");
transport.connect("smtp.gmail.com" , 465 , "username", "password");
System.out.println("fine3 !!");
Transport.send(msg);
System.out.println("fine!!");
}
catch(Exception exc) {
System.out.println(exc);
}
}
}
내 SmtpAuthenticator 클래스 : 난 내 Java 응용 프로그램 클래스를 실행하면
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class SmtpAuthenticator extends Authenticator {
public SmtpAuthenticator() {
super();
}
@Override
public PasswordAuthentication getPasswordAuthentication() {
String username = "user";
String password = "password";
if ((username != null) && (username.length() > 0) && (password != null)
&& (password.length() > 0)) {
return new PasswordAuthentication(username, password);
}
return null;
}
}
그것이 인쇄 : fine1! fine2 !!
그리고 응답하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?
pc/server와 외부 smtp 서버 간의 통신을 차단하는 방화벽이 없는지 확인하십시오. –
Windows 방화벽이 가정 및 공용 네트워크에서 새 프로그램을 차단할 때 방화벽에서 사용자에게 알림을 보내도록 설정됩니다. – Tot