Index: src/java/org/apache/james/transport/mailets/Redirect.java =================================================================== RCS file: /home/cvspublic/jakarta-james/src/java/org/apache/james/transport/mailets/Redirect.java,v retrieving revision 1.3 diff -u -r1.3 Redirect.java --- src/java/org/apache/james/transport/mailets/Redirect.java 18 Jan 2002 02:48:38 -0000 1.3 +++ src/java/org/apache/james/transport/mailets/Redirect.java 26 Mar 2002 02:55:52 -0000 @@ -192,12 +192,12 @@ private String messageText; private InternetAddress[] apparentlyTo; private Collection recipients; - private static int UNALTERED = 0; - private static int HEADS = 1; - private static int BODY = 2; - private static int ALL = 3; - private static int NONE = 4; - private static int MESSAGE = 5; + private static final int UNALTERED = 0; + private static final int HEADS = 1; + private static final int BODY = 2; + private static final int ALL = 3; + private static final int NONE = 4; + private static final int MESSAGE = 5; /** @@ -209,8 +209,8 @@ public void init() throws MessagingException { log("redirect init"); if(isStatic()){ - sender = getSender()==null ? getMailetContext().getPostmaster():getSender(); - replyTo = getReplyTo()==null ? getMailetContext().getPostmaster():getReplyTo(); + sender = getSender(); + replyTo = getReplyTo(); messageText = getMessage(); recipients = getRecipients(); apparentlyTo = getTo(); @@ -254,15 +254,15 @@ out.println(messageText); } switch(getInLineType()){ - case 3: //ALL: + case ALL: all = true; - case 1: //HEADS: + case HEADS: out.println("Message Headers:"); out.println(head); if(! all){ break; } - case 2: //BODY: + case BODY: out.println("Message:"); try{ out.println(message.getContent().toString()); @@ -272,7 +272,7 @@ break; default: - case 4: //NONE: + case NONE: break; } MimeMultipart multipart = new MimeMultipart(); @@ -284,20 +284,20 @@ if(getAttachmentType()!= NONE){ part = new MimeBodyPart(); switch(getAttachmentType()){ - case 1: //HEADS: + case HEADS: part.setText(head); break; - case 2: //BODY: + case BODY: try{ part.setText(message.getContent().toString()); }catch(Exception e){ part.setText("body unavailable"); } break; - case 3: //ALL: + case ALL: part.setText(head +"\n\n"+ message.toString()); break; - case 5: //MESSAGE: + case MESSAGE: part.setContent(message,"message/rfc822"); break; @@ -329,11 +329,13 @@ } if(sender == null){ reply.setHeader("From",message.getHeader("From",",")); + //Send it off using the first address in the "from" list... + getMailetContext().sendMail(new MailAddress(((InternetAddress)message.getFrom()[0]).getAddress()),recipients,reply); }else{ reply.setFrom(sender.toInternetAddress()); + //Send it off... + getMailetContext().sendMail(sender,recipients,reply); } - //Send it off... - getMailetContext().sendMail(sender,recipients,reply); if(! getPassThrough()){ mail.setState(Mail.GHOST); @@ -509,7 +511,7 @@ if(getInitParameter("prefix")==null){ return ""; }else{ - return getInitParameter("prefix"); + return getInitParameter("prefix") + " "; } } /** @@ -530,13 +532,13 @@ private int getTypeCode(String param){ int code; param = param.toLowerCase() ; - if (param.compareTo("unaltered")==0){return 0;} - if (param.compareTo("heads")==0){return 1;} - if (param.compareTo("body")==0){return 2;} - if (param.compareTo("all")==0){return 3;} - if (param.compareTo("none")==0){return 4;} - if (param.compareTo("message")==0){return 5;} - return 4; + if (param.compareTo("unaltered")==0){return UNALTERED;} + if (param.compareTo("heads")==0){return HEADS;} + if (param.compareTo("body")==0){return BODY;} + if (param.compareTo("all")==0){return ALL;} + if (param.compareTo("none")==0){return NONE;} + if (param.compareTo("message")==0){return MESSAGE;} + return NONE; } }