[ https://issues.apache.org/activemq/browse/CAMEL-2054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=54681#action_54681 ]
slad commented on CAMEL-2054: ----------------------------- Thanks Claus for the fix. Yes, truncating 4 char in filename is not RFC standard but the problem is filename shows up as "cid:filename" in email, which is not nice as users do not see readable filename in the email. I hope this gets fixed. I mentioned wrong fix above, it should be conditional i.e. + if (attachmentFilename.toLowerCase().startsWith("cid:")) { + messageBodyPart.setFileName(attachmentFilename.substring(4)); + } else { + messageBodyPart.setFileName(attachmentFilename); + } Regarding, unique name for content-id, it can be tough one to resolve as camel generated content-id has to be than replace in any of the mail parts which are referencing it. For ex: If I have logo.gif as attachment, I may have referenced it in email body like <img src="cid:logo.gif" /> So if camel generates unique content-id for this part as lets say - 123ABC than part will have Content-ID: <123ABC> than we have to change the reference for all logo.gif in body part i.e. above image reference should now get changed to <img src="123ABC" /> Thanks! > Mail Component: Content-ID reference in multipart broken > -------------------------------------------------------- > > Key: CAMEL-2054 > URL: https://issues.apache.org/activemq/browse/CAMEL-2054 > Project: Apache Camel > Issue Type: Bug > Components: camel-mail > Affects Versions: 1.6.1, 1.6.2, 2.0.0 > Environment: Email clients like gmail, zimbra. Outlook 2003 works > Reporter: slad > Assignee: Claus Ibsen > Fix For: 1.6.2, 2.1.0 > > > It looks like Camel Mail Component does not set Content-ID mime header > correctly or probably assumption is that BodyPart will take care of it. As a > result embedded images in html body do not work ( img src="cid:somename.img"). > Currently Content-ID is set as - > //MailBinding.java > // add a Content-ID header to the attachment > messageBodyPart.addHeader("Content-ID", attachmentFilename.substring(4)); > But according to RFC standards [http://www.ietf.org/rfc/rfc2392.txt], > Content-ID value should be enclosed with in angle brackets, so it should be > modified to - > //MailBinding.java > // add a Content-ID header to the attachment > messageBodyPart.addHeader("Content-ID", "<" + attachmentFilename.substring(4) > + ">"); > Also, below should be modified which incorrectly sets fileName inclusive of > "cid:", but expectation would be strip off "cid" off it, similar to Content-ID > // Set the filename > messageBodyPart.setFileName(attachmentFilename); > Should be - > // Set the filename > messageBodyPart.setFileName(attachmentFilename.substring(4)); > Also, RFC standard mentions that Content-ID should be globally unique but > Camel Mail just sets it to filename instead. I understand this can be > problematic as camel will have to replace references to each of such cid's > in any of the mail parts. > As I understand from RFC document, is that this is required in case you send > emails itself attachments, and attachments can same name can trample each > other(I may be wrong here). I guess we can live with this for a while :) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.