I have a project about mailing and works without problem but I created another project that is also about mailing generated MimeMessage cannot be parsed in first project.
I studied the classes and found difference between header class of MimeMessage Both projects are using
javax.mail.internet.MimeMessage
but I logged header as:
Enumeration enumer = originalUserMessage.getAllHeaders();
while(true){
try{
Object obj = enumer.nextElement();
if(obj == null) {
break;
}
LOGGER.info("Header class: "+obj.getClass().getName());
LOGGER.info("Header super class:" + obj.getClass().getSuperclass().getName());
} catch (NoSuchElementException nsee) {
break;
}
}
first project printed:
2015-03-03 16:57:16 INFO SmimeWriter:204 - Header class:
javax.mail.Header
2015-03-03 16:57:16 INFO SmimeWriter:205 - Header super class:
java.lang.Object
second project printed
2015-03-03 16:57:39 INFO SmimeWriter:204 - Header class:
javax.mail.internet.InternetHeaders$InternetHeader
2015-03-03 16:57:39 INFO SmimeWriter:205 - Header super class:
javax.mail.Header
all relevant classes seems like in mail.jar. I am using maven to get jars and both projects getting that jar as:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.2</version>
</dependency>
what can be the problem. is there any other dependent jars?
both projects are using same method. after code block below other parts of mime message are set but problem occurs here. code:
MimeMessage originalUserMessage = new MimeMessage(session);
originalUserMessage.setFrom(from);
originalUserMessage.setRecipients(Message.RecipientType.TO, to);
if(cc != null && cc.length>0){
originalUserMessage.setRecipients(Message.RecipientType.CC, cc);
}
Enumeration enumer = originalUserMessage.getAllHeaders();
while(true){
try{
Object obj = enumer.nextElement();
if(obj == null) {
break;
}
LOGGER.info("Header class: "+obj.getClass().getName());
LOGGER.info("Header super class: "+obj.getClass().getSuperclass().getName());
} catch (NoSuchElementException nsee) {
break;
}
}