First, read http://cocoon.apache.org/community/contrib.html. Unfortunately, this still references bugzilla which the project no longer uses. Instead, go to http://issues.apache.org/jira/browse/COCOON and create a new issue. You will probably need to create an account in Jira before you can create the issue.

We appreciate your work. Thanks.

Ralph

Marc Salvetti wrote:

Answering to myself again :)

I finally managed to do it, but i had to patch the mail block.
I changed 3 files :
MailMessageSender.java
MailSender.java
SendMail.java

Basically, i added a "bodyMimeType" parameter to the action, and checked if this attribute is set, use the setContent(body, mimeType) method rather than the setText(body, charset) method.

It works fine, and i would like to contribute the fix, but since i'm not a commiter, i don't know how to do

Marc

2005/11/21, Marc Salvetti <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:



    2005/11/21, Marc Salvetti <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>:

        That's why i'm trying to do for a while now and i came to the
        following problems :

        - if i use the action and set the src attribute to a cocoon
        pipeline producing html, the Content-disposition = attachment
        header is added, which i don't want (i want the html inline),
        but the pdf file is attached correctly to the mail
        - I can manage to send the html inline using the javaMail api
        directly from flowscript, but authentication and construction
        of the message is more complex than using the action, and i
        get the following error when sending the message :

        ERROR 2005-11-21 19:57:05,710 [flow] Thread-108 -
        javax.mail.MessagingException: IOException while sending message;
          nested exception is:
            javax.activation.UnsupportedDataTypeException: no object
        DCH for MIME type application/pdf


        I looked at the code of the MessageSender class, and i saw
        that it get the mime type by using the sourceResolver component.
        Since the mime type returned by the sourceResolver is also
        application/pdf i know it's not something to do with versions
        of the activation framework or some


    Sorry, i sent the message by mistake - damn keyboards shortcuts ! :)

    Since the mime type returned by the sourceResolver is also
    application/pdf i think it's not something to do with versions of
    the activation framework or something like that, but more with the
    way i use the api.

    I'd rather use the action, but it doesn't support adding custom
    headers, and it set the body of the message as an attachment.

    here is the flowscript i use :

       var mailprops = new java.util.Properties();
       mailprops.put("mail.smtp.host", cocoon.parameters['smtp-host']);
       mailprops.put("mail.smtp.auth", "true");
       mailprops.put("mail.smtp.user", cocoon.parameters['smtp-user']);
       mailprops.put("mail.smtp.password",
    cocoon.parameters['smtp-password']);
       var session = javax.mail.Session.getDefaultInstance(mailprops,
    null);
       session.setDebug(true);
       // create a message
       var msg = new javax.mail.internet.MimeMessage(session);
       msg.setRecipients(javax.mail.Message.RecipientType.TO
    <http://javax.mail.Message.RecipientType.TO>, to);
       if(!bcc.equals("")){
           msg.setRecipients(javax.mail.Message.RecipientType.BCC, bcc);
        }
        // Optional : You can also set your custom headers in the
    Email if you Want
        // Setting the Subject and Content Type
       msg.setSubject(subject);
       msg.setSentDate(new java.util.Date());
       var result, message;
       try
       {
            var addressFrom = new
    javax.mail.internet.InternetAddress(cocoon.parameters['from']);
            msg.setFrom(addressFrom);
// create and fill the first message part
            var mbp1 = new javax.mail.internet.MimeBodyPart();
            mbp1.setContent(body, "text/html");
// create the Multipart and its parts to it
            var mp = new javax.mail.internet.MimeMultipart();
            mp.addBodyPart(mbp1);

            if(!attachments.equals("")){
                // create and fill the second message part
                var mbp2 = new javax.mail.internet.MimeBodyPart();
                mbp2.setDisposition("attachment")
                var mimeType = getMimeType(attachments);
                // Use setText(text, charset), to show it off !
                var stream = new java.io.ByteArrayOutputStream();
                cocoon.processPipelineTo(attachments, {}, stream );
mbp2.setContent(stream, mimeType);
                mp.addBodyPart(mbp2);
            }
// add the Multipart to the message
            msg.setContent(mp);
// send the message
            //javax.mail.Transport.send(msg);
            var tr = session.getTransport("smtp");
            tr.connect(cocoon.parameters['smtp-host'],
    cocoon.parameters['smtp-user'], cocoon.parameters['smtp-password']);
            msg.saveChanges();
            tr.sendMessage(msg, msg.getAllRecipients());
            tr.close();
            result = "success";
       }
       catch(e)
       {
               cocoon.log.error("e="+ e);
               result = "failure";
               message = e;
       }


    Any help would be greatly appreciated !

    Marc



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]