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]
  

Reply via email to