Hi Eric, Thank you for your help.
I did as you suggested. I am getting the bounce mail, but also the original mail too. Following is my skeleton code of my mailet. public class CustomMailMailet extends AbstractNotify { @Override public void service(Mail mail) throws MessagingException { if(condition fails) { super.service(mail); } } } Following is the my configuration in the mailetcontainer.conf <mailet match="com.webmail.matcher.CustomMailMatcher" class="com.webmail.mailet.CustomMailMailet"> <attachError>true</attachError> <message>mail from non webmail client denied</message> <prefix>bounce</prefix> <attachment>none</attachment> <passThrough>true</passThrough> <debug>true</debug> </mailet> Please guide me how can i get the bounce message only instead of the bounce message and the original message. Thank you in advance, Regards, Rajender On Sat, Jan 5, 2013 at 8:51 PM, Eric Charles <e...@apache.org> wrote: > Well, why don't you start from the existing Bounce mailet [1] (which extends > AbstractNotify) rather than wrapping the MailetContext? > > Thx, Eric > > [1] > https://svn.apache.org/repos/asf/james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java > > > On 05/01/2013 15:44, Rajender Vallapureddy wrote: >> >> Hi Eric, >> >> I am writing a custom mailet and based on the condition, I might have >> to deny sending mail message and bounce it. >> >> My bounce method is getting called, but unable to bounce the mail message. >> >> I have written a helper class and implemented my bounce method. >> >> Following is the code. >> >> within my mailet I am calling the method bounce >> >> mailetcntxtwrapper = new MailetContextWrapper(); >> mailetcntxtwrapper.bounce(mail, "Denied access from this message", new >> MailAddress(username)); >> >> >> public class MailetContextWrapper implements MailetContext { >> >> @Override >> public void bounce(Mail mail, String message, MailAddress bouncer) >> throws MessagingException { >> if(mail == null) { >> System.out.println("Mail is null"); >> } >> >> if (mail.getSender() == null) { >> if (log.isInfoEnabled()) >> log.info("Mail to be bounced contains a null (<>) >> reverse path. No bounce will be sent."); >> return; >> } else { >> // Bounce message goes to the reverse path, not to the >> Reply-To >> // address >> if (log.isInfoEnabled()) >> log.info("Processing a bounce request for a message >> with a reverse path of " + mail.getSender().toString()); >> } >> >> MailImpl reply = rawBounce(mail, message); >> // Change the sender... >> reply.getMessage().setFrom(bouncer.toInternetAddress()); >> reply.getMessage().saveChanges(); >> // Send it off ... with null reverse-path >> reply.setSender(null); >> sendMail(reply); >> LifecycleUtil.dispose(reply); >> } >> >> /** >> * Generates a bounce mail that is a bounce of the original message. >> * >> * @param bounceText the text to be prepended to the message to >> describe the bounce >> * condition >> * @return the bounce mail >> * @throws MessagingException if the bounce mail could not be created >> */ >> private MailImpl rawBounce(Mail mail, String bounceText) throws >> MessagingException { >> System.out.println("rawbound method called"); >> // This sends a message to the james component that is a bounce of >> the >> // sent message >> MimeMessage original = mail.getMessage(); >> MimeMessage reply = (MimeMessage) original.reply(false); >> reply.setSubject("Re: " + original.getSubject()); >> reply.setSentDate(new Date()); >> Collection<MailAddress> recipients = new HashSet<MailAddress>(); >> recipients.add(mail.getSender()); >> InternetAddress addr[] = {new >> InternetAddress(mail.getSender().toString())}; >> reply.setRecipients(Message.RecipientType.TO, addr); >> reply.setFrom(new >> InternetAddress(mail.getRecipients().iterator().next().toString())); >> reply.setText(bounceText); >> reply.setHeader(RFC2822Headers.MESSAGE_ID, "replyTo-" + >> mail.getName()); >> return new MailImpl("replyTo-" + mail.getName(), new >> MailAddress(mail.getRecipients().iterator().next().toString()), >> recipients, reply); >> } >> >> } >> >> Please guide me to get my custom bounce working. Also I want to make >> sure that once the bounce happens, the mail is not processed any >> further. What configuration should I be looking at within the mailet >> configuration. >> >> Appreciate your help :) >> >> Thank you, >> Regards, >> Rajender >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >> For additional commands, e-mail: server-dev-h...@james.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org > For additional commands, e-mail: server-dev-h...@james.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org