SMTP Relay 전송 - Pringo SMTP 인터페이스를 이용한 이메일 전송 - Java
- 작성일2024/04/29 20:50
- 조회 1,413
Pringo SMTP 인터페이스를 이용한 SMTP Relay 이메일 전송 - Java
다음 절차는 Java를 사용하여 Pringo SMTP Relay서버를 통해 이메일을 보내는 방법을 보여줍니다. 이 코드는 JDK 1.8이 설치된 Linux 터미널에서 바로 컴파일하고 실행할 수 있습니다.
시작하기 전에
Java JDK 1.8 버전이 설치된 상태여야 합니다. 다음 명령어를 사용하여 설치 상태를 확인하거나 설치할 수 있습니다.
sudo apt-get update sudo apt-get install openjdk-8-jdk
Pringo SMTP Relay서버로 이메일 보내기
다음 Java 코드를 사용하여 Pringo SMTP 서버로 이메일을 보낼 수 있습니다. 이 코드를 터미널에서 컴파일하고 실행할 수 있습니다.
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 PringoEmailSender { public static void main(String[] args) { // SMTP 서버 정보 설정 String host = "smtp.pringo.com"; final String username = "your_username"; // Pringo SMTP 사용자 이름 final String password = "your_password"; // Pringo SMTP 비밀번호 String fromEmail = "sender@example.com"; String toEmail = "recipient@example.com"; // 프로퍼티 설정 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", host); props.put("mail.smtp.port", "587"); // 세션 생성 Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // 이메일 메시지 설정 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(fromEmail)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail)); message.setSubject("Pringo SMTP 테스트 이메일"); message.setContent("
Pringo SMTP Relay 테스트 이메일
이 이메일은 Pringo SMTP Relay 인터페이스를 사용하여 보냈습니다.
import java.util.Properties; import java.util.Scanner; import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendEmail2 { private static final Logger logger = Logger.getLogger(SendEmail2.class.getName()); public static void main(String[] args) { // 로그 파일 핸들러 설정 try { FileHandler fileHandler = new FileHandler("sendmail.log", true); fileHandler.setFormatter(new SimpleFormatter()); logger.addHandler(fileHandler); } catch (IOException e) { logger.log(Level.SEVERE, "Failed to set up file handler for logger", e); } // 사용자 입력 받기 Scanner scanner = new Scanner(System.in); System.out.print("Enter recipient email: "); String toEmail = scanner.nextLine(); System.out.print("Enter your email: "); String fromEmail = scanner.nextLine(); System.out.print("Enter email subject: "); String subject = scanner.nextLine(); System.out.print("Enter email body: "); String body = scanner.nextLine(); String smtpHost = "127.0.0.1"; // IP 인증을 사용하는 SMTP 서버의 주소 int smtpPort = 587; // IP 인증을 사용하는 SMTP 서버의 포트 Properties prop = new Properties(); prop.put("mail.smtp.host", smtpHost); prop.put("mail.smtp.port", smtpPort); prop.put("mail.smtp.auth", "false"); // 인증을 사용하지 않음 prop.put("mail.smtp.starttls.enable", "false"); // 필요에 따라 TLS를 비활성화 // 디버그 모드 활성화 Session session = Session.getInstance(prop); session.setDebug(true); session.setDebugOut(new java.io.PrintStream(System.out)); try { logger.info("Creating a new email message..."); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(fromEmail)); message.setRecipients( Message.RecipientType.TO, InternetAddress.parse(toEmail) ); message.setSubject(subject); message.setText(body); logger.info("Sending email..."); Transport.send(message); logger.info("Email sent successfully"); } catch (MessagingException e) { logger.log(Level.SEVERE, "Failed to send email", e); } // Scanner 닫기 scanner.close(); } }
코드 컴파일 및 실행
이 코드를 SendEmail2.java 파일로 저장한 후, Javac로 빌드하여 실행가능합니다. [실행 방법] 1. Java Development Kit (JDK)가 설치되어 있는지 확인합니다. 2. Java Home 설정이 되어 있지 않은 경우 일시적으로 유효한 JAVA_HOME설정을 합니다. export JAVA_HOME=../../jdk1.8.0_161 export PATH=$JAVA_HOME/bin:$PATH java -version #java경로 설정이 완료되면 java버전이 표시됩니다. 3. 첨부된 Java파일을 다운받아서 IP접속이 허용된 서버에서 컴파일 후 실행합니다. #1 Java 파일 컴파일 javac -cp .:../../jdk1.8.0_161/lib/javax.mail-1.6.2.jar:../../jdk1.8.0_161/lib/activation-1.1.jar SendEmail2.java #2. Java 파일 실행 java -cp .:../../jdk1.8.0_161/lib/javax.mail-1.6.2.jar:../../jdk1.8.0_161/lib/activation-1.1.jar SendEmail2
위 단계를 따라 Pringo SMTP 인터페이스를 통해 Java로 이메일을 전송할 수 있습니다. 추가 도움이 필요하면 Pringo 지원팀에 문의하십시오.
실행 및 수신 및 전송 로그출력 화면 스크린샷