English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java 애플리케이션을 사용하여 E를 보내세요-mail은 매우 간단하지만, 먼저 JavaMail API와 Java Activation Framework (JAF)을 컴퓨터에 설치해야 합니다.
Java 웹사이트에서 최신 버전의 JavaMail웹페이지의 우측에 Downloads 링크를 다운로드하여 클릭하여 다운로드하세요。
Java 웹사이트에서 최신 버전의 JAF(버전 1.1.1)。
이 웹사이트에서 제공하는 다운로드 링크를 사용할 수도 있습니다:
이 파일들을 다운로드하고 압축을 풀어, 새로 만든 최상위 디렉토리에서 두 개의应用程序의 jar 파일을 찾을 수 있습니다. 이 파일들을 추가해야 합니다: mail.jar 와 activation.jar 파일을 CLASSPATH에 추가하세요.
QQ SMTP 서버와 같은 제3자 메일 서버를 사용하는 경우, 글 아래의 사용자 인증 예제를 확인할 수 있습니다.
다음은 간단한 E를 보내는 예제입니다-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정
// 파일 이름 SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // 받는 사람의 이메일 주소 String to = "[email protected]"; // 보내는 사람의 이메일 주소 String from = "[email protected]"; // localhost로 주소를 설정한 발신 주소 String host = "localhost"; // 시스템 속성을 가져옵니다 Properties properties = System.getProperties(); // 이메일 서버를 설정합니다 properties.setProperty("mail.smtp.host", host); // 기본적인 session 객체를 가져옵니다 Session session = Session.getDefaultInstance(properties); try{ // 기본적인 MimeMessage 객체를 생성합니다 MimeMessage message = new MimeMessage(session); // Set From: Header field Set From: Header field // message.setFrom(new InternetAddress(from)); Set To: Header field message.addRecipient(Message.RecipientType.TO, // new InternetAddress(to)); Set Subject: Header field // message.setSubject("This is the Subject Line!"); Set message body // message.setText("This is actual message"); Transport.send(message); System.out.println("Sent message successfully...."); }catch(MessagingException mex) { mex.printStackTrace(); } } }
이 프로그램을 컴파일하고 실행하여 간단한 E를 보내세요-mail:
$ java SendEmail Sent message successfully....
만약 당신이 이메일을 보내고 싶다면-여러 개의 수신자에게 이메일을 보내려면 다음 메서드를 사용하여 여러 개의 수신자 ID를 지정합니다:
void addRecipients(Message.RecipientType type, Address[] addresses) MessagingException throws
파라미터에 대한 설명은 다음과 같습니다:
type:TO, CC 또는 BCC로 설정되어야 합니다. 여기서 CC는 복사보내기, BCC는 비공개 복사보내기입니다. 예를 들어:Message.RecipientType.TO
addresses: 이메일 ID의 배열입니다. 지정된 이메일 ID를 사용할 때는 InternetAddress() 메서드를 사용해야 합니다
아래는 HTML E-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정
이전 예제와 유사하지만, setContent() 메서드를 사용하여 두 번째 매개변수 "text/html"를 사용하여 내용을 설정하여 전송할 HTML 내용을 지정
// 파일 이름 SendHTMLEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendHTMLEmail { public static void main(String [] args) { // 받는 사람의 이메일 주소 String to = "[email protected]"; // 보내는 사람의 이메일 주소 String from = "[email protected]"; // localhost로 주소를 설정한 발신 주소 String host = "localhost"; // 시스템 속성을 가져옵니다 Properties properties = System.getProperties(); // 이메일 서버를 설정합니다 properties.setProperty("mail.smtp.host", host); // 기본적인 Session 객체 가져오기 Session session = Session.getDefaultInstance(properties); try{ // 기본적인 MimeMessage 객체 생성 MimeMessage message = new MimeMessage(session); // Set From: Header field Set From: Header field // message.setFrom(new InternetAddress(from)); Set To: Header field message.addRecipient(Message.RecipientType.TO, // Set Subject: 헤더 필드 Set Subject: Header field // HTML 메시지를 전송하면, html 태그를 삽입할 수 있습니다 message.setContent("<h1>This is actual message</h1>", "text/html" ); // message.setText("This is actual message"); Transport.send(message); System.out.println("Sent message successfully...."); }catch(MessagingException mex) { mex.printStackTrace(); } } }
이 프로그램을 컴파일하고 실행하여 HTML e-mail:
$ java SendHTMLEmail Sent message successfully....
아래는 첨부 파일이 포함된 E-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정
// 파일 이름 SendFileEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendFileEmail { public static void main(String [] args) { // 받는 사람의 이메일 주소 String to = "[email protected]"; // 보내는 사람의 이메일 주소 String from = "[email protected]"; // localhost로 주소를 설정한 발신 주소 String host = "localhost"; // 시스템 속성을 가져옵니다 Properties properties = System.getProperties(); // 이메일 서버를 설정합니다 properties.setProperty("mail.smtp.host", host); // 기본적인 Session 객체 가져오기 Session session = Session.getDefaultInstance(properties); try{ // 기본적인 MimeMessage 객체 생성 MimeMessage message = new MimeMessage(session); // Set From: Header field Set From: Header field // message.setFrom(new InternetAddress(from)); Set To: Header field message.addRecipient(Message.RecipientType.TO, // Set Subject: 헤더 필드 Set Subject: Header field // 메시지 부분 생성 BodyPart messageBodyPart = new MimeBodyPart(); // 메시지 messageBodyPart.setText("This is message body"); // 다중 메시지 생성 Multipart multipart = new MimeMultipart(); // 텍스트 메시지 부분 설정 multipart.addBodyPart(messageBodyPart); // 첨부 파일 부분 messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // 전체 메시지를 전송합니다 message.setContent(multipart); // message.setText("This is actual message"); Transport.send(message); System.out.println("Sent message successfully...."); }catch(MessagingException mex) { mex.printStackTrace(); } } }
프로그램을 컴파일하고 실행하여 첨부 파일이 있는 이메일을 전송합니다.
$ java SendFileEmail Sent message successfully....
사용자 이름과 비밀번호를 제공해야 하는 경우 e-mail 서버를 통해 사용자 인증을 달성하기 위해, 다음 설정을 통해 완료할 수 있습니다:
props.put("mail.smtp.auth", "true"); props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
e-mail의 다른 전송 메커니즘은 위와 동일합니다.
이 예제는 QQ 이메일 서버를 예로 들어, QQ 이메일 백그라운드에 로그인하여 "설정" => "계정"에서 POP를 활성화해야 합니다3/SMTP 서비스, 다음 그림과 같이 보입니다:
QQ 이메일은 인증 코드를 생성하여 비밀번호를 설정합니다:
Java 코드는 다음과 같습니다:
// 사용자 이름과 비밀번호가 필요한 이메일 전송 예제 //파일 이름 SendEmail2.java //이 예제는 QQ 이메일을 예로 들어, QQ 백그라운드에서 설정해야 합니다 import java.util.Properties; import javax.mail.Authenticator; 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 SendEmail2 { public static void main(String [] args) { // 받는 사람의 이메일 주소 String to = "[email protected]"; // 보내는 사람의 이메일 주소 String from = "[email protected]"; // 보내는 이메일의 주소를 smtp.qq.com으로 지정합니다 String host = "smtp.qq.com"; //QQ 이메일 서버 // 시스템 속성을 가져옵니다 Properties properties = System.getProperties(); // 이메일 서버를 설정합니다 properties.setProperty("mail.smtp.host", host); properties.put("mail.smtp.auth", "true"); // 기본적인 session 객체를 가져옵니다 Session session = Session.getDefaultInstance(properties, new Authenticator(){ public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "qq邮箱授权码"); //보내는 사람의 이메일 사용자 이름, 인증 코드 } }); try{ // 기본적인 MimeMessage 객체를 생성합니다 MimeMessage message = new MimeMessage(session); // Set From: Header field Set From: Header field // message.setFrom(new InternetAddress(from)); Set To: Header field message.addRecipient(Message.RecipientType.TO, // new InternetAddress(to)); Set Subject: Header field // message.setSubject("This is the Subject Line!"); Set message body // message.setText("This is actual message"); Transport.send(message); System.out.println("message sent successfully....from oldtoolbag.com)); }catch(MessagingException mex) { mex.printStackTrace(); } } }