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 <[email protected]> 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: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]