Dear Wiki user, You have subscribed to a wiki page or wiki category on "James Wiki" for change notification.
The following page has been changed by GuillermoGrandes: http://wiki.apache.org/james/BeanShellExamples The comment on the change is: Added Multi RemoveMimeHeaders ------------------------------------------------------------------------------ Can you see that this scripted code use log4j, you also can setup, see also [wiki:Self:log4j Log4J in James] ---- - === RemoveMimeHeader === + === RemoveMimeHeader & RemoveMimeHeaderList === This is an example exacted from request of MailetIdeas. ==== Config of Scripted RemoveMimeHeader: SAR-INF/config.xml ==== {{{ + <!-- Remove One Header --> <mailet match="All" class="BeanShell"> <script>/opt/james/bsh/mimeheads.bsh</script> <method>RemoveMimeHeader</method> <name>X-BadHeader</name> </mailet> + <!-- Clean Multiples Headers --> + <mailet match="All" class="BeanShell"> + <script>/opt/james/bsh/mimeheads.bsh</script> + <method>RemoveMimeHeaderList</method> + <name1>X-UserIsTrust</name1> + <name2>X-UserIsAuth</name2> + </mailet> }}} ==== RemoveMimeHeader BeanShell Mailet: /opt/james/bsh/mimeheads.bsh ==== @@ -192, +200 @@ {{{ #!java /* - Scripted RemoveMimeHeader for BeanShell and James + Scripted RemoveMimeHeader / RemoveMimeHeaderList for BeanShell and James Author: Guillermo Grandes The ASF licenses this file to you under the Apache License v2.0 @@ -217, +225 @@ try { MimeMessage message = mail.getMessage(); - //Set the header name and value (supplied at init time). + //Remove the header name (supplied at init time). message.removeHeader(headerName); message.saveChanges(); } catch (javax.mail.MessagingException me) { ma.log(me.getMessage()); } } + void RemoveMimeHeaderList(Mail mail, Mailet ma) { + try { + MimeMessage message = mail.getMessage(); + // Remove the headers + Iterator i = ma.getInitParameterNames(); + for (Iterator i = ma.getInitParameterNames(); i.hasNext();) { + String key = i.next(); + if (key.startsWith("name")) { + String headerName = ma.getInitParameter(key); + //Remove the header name (supplied at init time). + if (headerName != null && !headerName.equals("")) { + message.removeHeader(headerName); + } + } + } + message.saveChanges(); + } catch (javax.mail.MessagingException me) { + ma.log(me.getMessage()); + } + } return this; }}} - In only 10 mins, is fantastic, right? :-) + In only 15 mins, is fantastic, right? :-) See also [http://svn.apache.org/viewvc/james/server/branches/v2.3/src/java/org/apache/james/transport/mailets/SetMimeHeader.java?view=markup SetMimeHeader]