2012-01-19 4 views
12

클라이언트가 메일에 회신을 시도 할 때 from, toreply-to 주소를 가진 작은 이메일 전송 프로그램을 작성했습니다. reply-to 주소. 현재는 작동하지 않습니다, 내 코드는 다음과 같습니다 :Java 메일, 회신 주소가 작동하지 않음을 설정하십시오.

// File Name SendEmail.java 

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.activation.*; 

public class SendEmail 
{ 
    public static void main(String [] args) 
    { 

     // Recipient's email ID needs to be mentioned. 
     String to = "[email protected]"; 

     // Sender's email ID needs to be mentioned 
     String from = "[email protected]"; 

     // Assuming you are sending email from localhost 
     String host = "localhost"; 

     // Get system properties 
     Properties properties = System.getProperties(); 
    properties.put("mail.smtp.from", "[email protected]"); 

     // Setup mail server 
     properties.setProperty("mail.smtp.host", host); 

     // Get the default Session object. 
     Session session = Session.getDefaultInstance(properties); 

     try{ 
     // Create a default MimeMessage object. 
     MimeMessage message = new MimeMessage(session); 

     // Set From: header field of the header. 
     message.setFrom(new InternetAddress(from)); 

     // Set To: header field of the header. 
     message.addRecipient(Message.RecipientType.TO, 
            new InternetAddress(to)); 

     // Set Subject: header field 
     message.setSubject("This is the Subject Line!"); 

     // Now set the actual message 
     message.setText("New Message goes here"); 

     // Send message 
     Transport.send(message); 
     System.out.println("Sent message successfully...."); 
     }catch (MessagingException mex) { 
     mex.printStackTrace(); 
     } 
    } 
} 

내가 진짜 Gmail 계정을 사용했다. 아무도 도울 수 .. ..?

+1

코드가 회신 주소를 설정하려고 시도하는 것처럼 보이지 않습니다. – Jolta

+0

'mail.smtp.from'을 어떻게 설정합니까? –

답변

22

Message.setReplyTo()?

있다는 점 유의 하시길 바랍니다 :

"에서"
  • 가 동일하지 않은 spec에 따라
  • "회신"에서 주소에 대한 속성은 "mail.from"
  • getDefaultInstance의 설명서에서는 기존 기본 인스턴스가없고 새 인스턴스를 만들 때만 속성이 사용되는 경우에만 새 인스턴스를 만듭니다. 또한, 기본 인스턴스가 글로벌 값이며 모든 이메일에 - 주소 "에서"같은 원하지 않는, 그래서 다시 사용됩니다, 당신은
26

(의 getInstance()를 사용하여) 새로운 세션을 생성해야 시도해보십시오.

MimeMessage message = new MimeMessage(session); 
message.setReplyTo(new javax.mail.Address[] 
{ 
    new javax.mail.internet.InternetAddress("[email protected]") 
}); 
관련 문제