2012-07-31 5 views
0

JBoss 서버에서 Postfix 서버를 실행 중입니다. 전자 메일을 보낼 때 JavaMail에서 잘못된 messageID를 만듭니다. Message-ID : < 47112553230.139.4972667128159.JavaMail.undefined>. 보내는 메일에 대한JavaMail이 유효하지 않음 MSGID

이 코드를 사용하고

:

Properties props = new Properties(); 
props.put("mail.smtp.host", "xxx.tld"); 
props.put("mail.host", "xxx.tld"); 
InitialContext ictx = new InitialContext(props); 
Session sess = (Session) ictx.lookup("java:jboss/mail/Default"); 
Transport trans = sess.getTransport("smtp"); 
trans.connect(); 

MimeMessage msg = new MimeMessage(sess); 
msg.setFrom(new InternetAddress(from)); 
msg.addRecipients(RecipientType.TO, InternetAddress.parse(to, false)); 
msg.setSubject(subject); 
msg.setText(message); 
msg.setHeader("Content-Type", "text/html; charset=\"utf-8\""); 
msg.saveChanges(); 

Transport.send(msg, msg.getAllRecipients()); 
trans.close(); 

주요 후위 구성 :

myhostname = xxx.tld 
alias_maps = hash:/etc/aliases 
alias_database = hash:/etc/aliases 
myorigin = /etc/mailname 
mydestination = xxx.tld, Debian-60-squeeze-64-minimal, localhost.localdomain, localhost 
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 
mailbox_size_limit = 0 
recipient_delimiter = + 
inet_interfaces = 127.0.0.1 

가 어떻게이 문제를 해결할 수 있습니까?

안부, 기독교

+0

당신은-ID 메시지가 잘못에 대해 어떻게 생각 하죠? –

+0

<47112553230.139.4972667128159.JavaMail.undefined>에는 최상위 도메인이 포함되어 있지 않습니다. SpamAssasin은 메일에 "INVALID_MSGID"플래그를 지정합니다. – user1565121

+0

맞습니다. 최소한 "@"를 포함해야합니다. Message-ID에서 "정의되지 않은"부분은 [InternetAddress.getLocalAddress] (http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/InternetAddress.html#getLocalAddress (javax.mail) . 세션)) 방법; 자세한 내용은 javadocs를 읽으십시오. 내가 볼 수있는 한 "mail.from"속성이 "undefined"로 설정된 경우 값이 "정의되지 않음"일 수있는 유일한 방법입니다. getLocalAddress가 null을 반환하면 JavaMail은 "javamailuser @ localhost"를 사용합니다. –

답변

1

내가 @BillShannon의 도움으로 문제를 해결할 수있는 방법이있다는 :

Properties props = new Properties(); 
InitialContext ictx = new InitialContext(props); 
Session sess = (Session) ictx.lookup("java:jboss/mail/Default"); 
props = sess.getProperties(); 
props.put("mail.smtp.host", "xxx.tld"); 
props.put("mail.host", "xxx.tld"); 
props.put("mail.from", "[email protected]"); 
sess = Session.getInstance(props); 
+0

새 세션을 가져올 필요가 없습니다. 변경 한 속성은 현재 세션에 영향을 미칩니다. –

+0

좋아, 나는 그것을 테스트하고 그것을 작동합니다. 도와 주셔서 정말 고맙습니다. – user1565121

관련 문제