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) {

Reply via email to