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: Example of init parameters only first time ------------------------------------------------------------------------------ <method>RemoveMimeHeader</method> <name>X-BadHeader</name> </mailet> - <!-- Clean Multiples Headers --> + <!-- Clean Multiples Headers in the top of root processor --> <mailet match="All" class="BeanShell"> <script>/opt/james/bsh/mimeheads.bsh</script> <method>RemoveMimeHeaderList</method> - <name1>X-UserIsTrust</name1> - <name2>X-UserIsAuth</name2> + <name1>X-UserIsAuth</name1> + <name2>X-WasSigned</name2> + <name3>X-MessageIsSpam</name3> + <name4>X-MessageIsSpamProbability</name4> </mailet> }}} @@ -232, +234 @@ ma.log(me.getMessage()); } } + // + static String[] heads = null; void RemoveMimeHeaderList(Mail mail, Mailet ma) { + // Init parameters + if (heads == null) { + Vector v = new Vector(); - 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); + v.add(ma.getInitParameter(key)); - //Remove the header name (supplied at init time). - if (headerName != null && !headerName.equals("")) { - message.removeHeader(headerName); - } } + } + heads = new String[v.size()]; + v.toArray(heads); + ma.log("Init Headers=" + v.toString()); + } + try { + MimeMessage message = mail.getMessage(); + //Remove the header name (supplied at init time). + for (int i = 0; i < heads.length; i++) { + message.removeHeader(heads[i]); } message.saveChanges(); } catch (javax.mail.MessagingException me) {