Index: src/groovy/org/grails/mail/MailMessageBuilder.groovy =================================================================== --- src/groovy/org/grails/mail/MailMessageBuilder.groovy (Revision 54429) +++ src/groovy/org/grails/mail/MailMessageBuilder.groovy (Arbeitskopie) @@ -79,7 +79,7 @@ void attachBytes(String fileName, String contentType, byte[] bytes) { def msg = getMessage() if(msg instanceof MimeMailMessage) { - MimeMessageHelper message = new MimeMessageHelper(getMessage(), true, "UTF-8"); + MimeMessageHelper message = new MimeMessageHelper(msg.mimeMessage, true, "UTF-8"); message.addAttachment(fileName, new ByteArrayResource(bytes), contentType) } else { Index: test/unit/org/grails/mail/MailMessageBuilderTests.groovy =================================================================== --- test/unit/org/grails/mail/MailMessageBuilderTests.groovy (Revision 54429) +++ test/unit/org/grails/mail/MailMessageBuilderTests.groovy (Arbeitskopie) @@ -21,6 +21,7 @@ import org.codehaus.groovy.grails.commons.ConfigurationHolder import org.springframework.mail.MailSender import org.springframework.mail.javamail.JavaMailSender +import javax.mail.internet.MimeMultipart /** * Test case for {@link MailMessageBuilder}. @@ -127,6 +128,22 @@ } } + void testAttachment() { + processDsl { + to "fred@g2one.com" + subject "Hello Fred" + body 'How are you?' + attachBytes "dummy.bin", "application/binary", "abcdef".bytes + } + def msg = testBuilder.createMessage().mimeMessage + assertTrue msg.content instanceof MimeMultipart + assertEquals 2, msg.content.count + + def attachment = msg.content.getBodyPart(1) + assertEquals "abcdef", attachment.content.text + assertEquals "dummy.bin", attachment.fileName + } + private List to(MimeMessage msg) { msg.getRecipients(Message.RecipientType.TO)*.toString() }