 <p>You said "... when I send the same mail for outlook client ..."; did you mean <strong>from</strong> Outlook client?</p> <p>It's not required that attachments include a filename; perhaps Outlook isn't setting a filename for a .msg attachment. You can use the msgshow.java demo program that comes with JavaMail to dump out the entire structure and content of the message. You also might want to examine the raw MIME content of the message to see exactly what Outlook is sending you.</p> <p>Also, you might want to look at the "isMimeType" method to simplify your code. A message attachment should have a MIME type of message/rfc822.</p>