Thank you very much Isaac. I will give this a try in the next day or so. Appreciate the code.

Cj

Intelekia wrote:

Hi Corey,

Try compiling this:

package com.intelekia.mailets;

import java.util.Collection;
import java.util.HashSet;

import javax.mail.MessagingException;

import org.apache.james.core.MailImpl;
import org.apache.james.services.MailServer;
import org.apache.mailet.GenericMailet;
import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;

public class CopyMessage extends GenericMailet {
Collection recipients = new HashSet(1);
String processor = null;
MailServer server = null;
boolean canServe = false;
private static long count;
public void init() throws MessagingException {
try {
recipients.add(new MailAddress(getInitParameter("recipient")));
processor = getInitParameter("processor");
server = (MailServer) this.getMailetContext();
if (processor != null && server != null) {
canServe = true;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void service(Mail mail) throws MessagingException {
if (canServe) {
MailImpl mailImpl = (MailImpl) mail;
MailImpl copyMail = (MailImpl) mailImpl.duplicate(getId());
copyMail.setRecipients(recipients);
copyMail.setState(processor);
server.sendMail(copyMail);
}
}
public String getMailetInfo() {
return "CopyMessage Mailet";
}
private static String getId() {
long localCount = -1;
synchronized (CopyMessage.class) {
localCount = count++;
}
StringBuffer idBuffer =
new StringBuffer(64)
.append("Mail")
.append(System.currentTimeMillis())
.append("-")
.append(localCount);
return idBuffer.toString();
}
}


Then call it from your config.xml file like this:

<spoolmanager>
     <!-- Number of spool threads -->
     <threads> 10 </threads>

     <!-- Set the Java packages from which to load mailets and matchers -->
     <mailetpackages>
        <mailetpackage>org.apache.james.transport.mailets</mailetpackage>
        <mailetpackage>com.intelekia.mailets</mailetpackage>
     </mailetpackages>
     <matcherpackages>
       <matcherpackage>org.apache.james.transport.matchers</matcherpackage>
     </matcherpackages>

     <!-- The root processor is a required processor - Envoy routes all
mail on the spool -->
     <!-- through this processor first. -->
     <!-- -->
     <!-- This configuration is a sample configuration for the root
processor. -->
     <processor name="root">

<!-- Important check to avoid looping -->
<mailet match="RelayLimit=30" class="Null"/>
<mailet match="All" class="CopyMessage">
<recipient> [EMAIL PROTECTED] </recipient>
<processor> transport </processor>
</mailet>


[... ETC ...]

That's it, quite self-explanatory I guess.

"And i think it would be good if i can have it ignore (not copy) any postmaster emails.."

I think you can easily do it yourself by playing with the
org.apache.james.transport.matchers SenderIs & RecipientIs (or quickly
creating a boolean counterpart SenderIsNot & RecipientIsNot), like:

        <mailet match="[EMAIL PROTECTED]"
class="CopyMessage">
           <recipient> [EMAIL PROTECTED] </recipient>
           <processor> transport </processor>
        </mailet>

Hope this helps,

Isaac.


-----Original Message-----
From: Corey A. Johnson [mailto:[EMAIL PROTECTED] Sent: mi�rcoles, 03 de noviembre de 2004 0:01
To: James Users List
Subject: copy account


Hello All,

Was hoping someone could point me in the right direction. Is their an existing mailet/matcher that would allow for the configuration of a copy account? I have a client that i installed James for.. has been working great.. now they have asked me to setup a "copy account." Basically they want a copy of any email sent or received via their James server to be sent to a specific mailbox (on the James server). And i think it would be good if i can have it ignore (not copy) any postmaster emails..

Hoping something exists already. I looked through the mailets and matchers.. it seems some may exist that could be used. But i am not 100% sure.

very sorry if their is an obvious solution. i searched the through the mail list archives.. could not find an exact solution.

thanks in advance for any advise or nudges!

Cj




-- Corey A. Johnson Creative Network Innovations http://www.cniweb.net/ 1-800-CNi-5547 ** 1-321-259-1984


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



Reply via email to