Java에서 SMTP를 기반으로 이메일을 보내려면, mail.jar와 activation.jar 파일을 다운받고 프로젝트에 import 해주어야 한다.
앱 선택: 메일, 기기 선택: Windows 컴퓨터를 선택합니다.
생성된 16글자의 비밀번호를 이메일의 패스워드로 사용합니다.
Java 코드
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.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MyMail {
private static final String user = "your_gmail_address@gmail.com"; // gmail 계정
private static final String password = "********"; // gmail 패스워드
public static void sendEmail(String recipient) {
Properties prop = new Properties();
prop.put("mail.smtp.auth", true);
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", 587);
prop.put("mail.smtp.ssl.trust", "smtp.gmail.com");
prop.put("mail.smtp.ssl.protocols", "TLSv1.2");
Session session = Session.getDefaultInstance(prop, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
message.setSubject("메일 제목 입력");
message.setText("내용 입력");
Transport.send(message);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}