2014-04-11 1 views
1

메시지로 html 페이지를 보내려고합니다. 은 이미 message.setContent("<html><body><h1>This is actual message</h1></body></html>","text/html");을 통해 html 이메일을 보내고 있습니다. 이제 html 페이지를 보내주세요. 다음이를 보내는 방법HTML 페이지를 자바로 이메일로 보내십시오.

message.setContent("street.html","text/html");처럼 당신은 콘텐츠 형식을 보낼 수 있도록 문자열로 "street.html"의 내용을 읽을 필요가 내 전체 코드

String to = "[email protected]"; 
    String from = "[email protected]"; 
    Properties properties = System.getProperties(); 
    properties.put("mail.smtp.starttls.enable", "true"); 
    properties.put("mail.smtp.host", "smtp.gmail.com"); 
    properties.put("mail.smtp.port", "587"); 
    properties.put("mail.smtp.auth", "true"); 

    Session session = Session.getInstance(properties, new javax.mail.Authenticator() { 
protected PasswordAuthentication getPasswordAuthentication() { 
    return new PasswordAuthentication("[email protected]", "from2013"); 
}}); 

    try{ 
    MimeMessage message = new MimeMessage(session); 
    message.setFrom(new InternetAddress(from)); 
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); 
    message.setSubject("This is the Subject Line!"); 
    message.setContent("street.html","text/html"); 
    Transport.send(message); 
    System.out.println("Sent message successfully...."); 
    }catch (MessagingException mex) { 
    mex.printStackTrace(); 
    } 
+0

질문은 무엇에 사용할 수 있습니까? –

+0

외부 HTML 페이지를 보내시겠습니까? 'http://google.com'처럼? 아니면 HTML 파일 일 뿐인 로컬 파일입니까? –

+0

로컬 html 페이지 – user3492997

답변

0

이다 "텍스트/html ".

0

MimeMessage.setText() 메소드는 텍스트/일반의 기본 MIME 타입을 설정하여 시도 할 수 있습니다. 하지만 당신은 text/html이 필요합니다. 이 작업은 MimeMessage.setContent()를 사용하여 수행 할 수 있습니다.

자바 측에서이 코드를 사용할 수 있습니다.

message.setContent(someHtmlMessage, "text/html; charset=utf-8"); 
0

DataHandler 중 하나를 사용하여 로컬 파일의 내용을 읽어야합니다. DataHandler 객체 자체를 받아 들일 MiMeMessage 클래스 API에서 오버로드 된 메소드를 사용해야한다. MiMeMessage.SetContent(Object, type);

API 링크 및 google을 참조하면 몇 가지 샘플 방법으로 필요한 sloution이 제공됩니다. 이 하나

1

짧은 한 줄 :

StringWriter writer = new StringWriter(); 
IOUtils.copy(new FileInputStream(new File("home.html")), writer); 

message.setContent(writer.toString(), "text/html"); 

참고 : : IOUtils는 Apache Commons IO 라이브러리

+0

나를 위해 잘 된. –

관련 문제