You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2009/12/02 18:30:18 UTC
svn commit: r886211 - in /james/hupa/trunk:
client/src/main/java/org/apache/hupa/client/mvp/
server/src/main/java/org/apache/hupa/server/handler/
server/src/main/java/org/apache/hupa/server/servlet/
server/src/main/resources/mime/ shared/src/main/java/...
Author: manolo
Date: Wed Dec 2 17:30:17 2009
New Revision: 886211
URL: http://svn.apache.org/viewvc?rev=886211&view=rev
Log:
Use Reply-to header.
Improved the text which is automatically added in the head of reply and forward messages.
Added a log line useful to investigate bug #57
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/HupaDispatchServlet.java
james/hupa/trunk/server/src/main/resources/mime/7.msg
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/Util.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java Wed Dec 2 17:30:17 2009
@@ -204,7 +204,7 @@
message.setFrom(display.getFromText().getText());
ArrayList<String> to = new ArrayList<String>();
- String[] toRaw = display.getToText().getText().split(",");
+ String[] toRaw = display.getToText().getText().split("[,;]+");
if (toRaw != null) {
for (int i = 0; i < toRaw.length;i++) {
String toRecip = toRaw[i].trim();
@@ -216,7 +216,7 @@
message.setTo(to);
ArrayList<String> cc = new ArrayList<String>();
- String[] ccRaw = display.getCcText().getText().split(",");
+ String[] ccRaw = display.getCcText().getText().split("[,;]+");
if (ccRaw != null) {
for (int i = 0; i < ccRaw.length;i++) {
String ccRecip = ccRaw[i].trim();
@@ -343,23 +343,26 @@
display.getMessageHTML().setHTML("");
if (type.equals(Type.FORWARD)) {
- display.getSubjectText().setText("Fwd: " + oldmessage.getSubject());
- display.getMessageHTML().setHTML(wrapMessage(oldmessage, oldDetails));
+ if (! oldmessage.getSubject().toLowerCase().startsWith("fwd:"))
+ display.getSubjectText().setText("Fwd: " + oldmessage.getSubject());
} else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
- display.getSubjectText().setText("Re: " + oldmessage.getSubject());
- display.getMessageHTML().setHTML(wrapMessage(oldmessage, oldDetails));
-
- if (type.equals(Type.REPLY)) {
+ if (! oldmessage.getSubject().toLowerCase().startsWith("re:"))
+ display.getSubjectText().setText("Re: " + oldmessage.getSubject());
+
+ if (oldmessage.getReplyto() != null) {
+ display.getToText().setText(oldmessage.getReplyto());
+ } else if (type.equals(Type.REPLY)) {
display.getToText().setText(oldmessage.getFrom());
} else {
oldmessage.getCc().remove(user.getName());
display.getCcText().setText(Util.listToString(oldmessage.getCc()));
oldmessage.getTo().remove(user.getName());
-
display.getToText().setText(Util.listToString(oldmessage.getTo()));
-
}
}
+
+ display.getMessageHTML().setHTML(wrapMessage(oldmessage, oldDetails, type));
+
if (mailto != null)
display.getToText().setText(mailto);
firePresenterChangedEvent();
@@ -388,12 +391,31 @@
// DO Nothing
}
- private String wrapMessage(Message message, MessageDetails details){
+ private String generateHeader(Message message, Type type) {
+ String ret = "<br><br>";
+ if (type.equals(Type.FORWARD)) {
+ ret += "--------- Forwarded message --------- <br>";
+ ret += "From: " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">") + "<br>";
+ ret += "Date: " + message.getReceivedDate() + "<br>";
+ ret += "Subject: " + message.getSubject() + "<br>";
+ ArrayList<String> to = new ArrayList<String>();
+ to.addAll(message.getTo());
+ to.addAll(message.getCc());
+ ret += "To: " + Util.listToString(to).replaceAll("<", "<").replaceAll(">", ">") + "<br>";
+ } else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
+ ret += "On " + message.getReceivedDate();
+ ret += ", " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">");
+ ret += ". wrote:<br>";
+ }
+ return ret + "<br>";
+ }
+ private String wrapMessage(Message message, MessageDetails details, Type type) {
String ret;
ret = "<font size=2 style='font-family: arial'>";
- ret += "<br><br>On " + message.getReceivedDate() + ", " + message.getFrom() +". wrote:<br>";
+ ret += generateHeader(message, type);
ret += "<blockquote style='border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;'>";
- ret += details.getText();
+ if (details != null)
+ ret += details.getText();
ret += "</blockquote></font>";
return ret;
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java Wed Dec 2 17:30:17 2009
@@ -129,6 +129,17 @@
}
}
msg.setFrom(from);
+
+ String replyto = null;
+ if (m.getReplyTo() != null && m.getReplyTo().length >0 ) {
+ replyto = m.getReplyTo()[0].toString().trim();
+ try {
+ replyto = MimeUtility.decodeText(replyto);
+ } catch (UnsupportedEncodingException e) {
+ logger.debug("Unable to decode replyto " + replyto, e);
+ }
+ }
+ msg.setReplyto(replyto);
ArrayList<String> to = new ArrayList<String>();
// Add to addresses
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java Wed Dec 2 17:30:17 2009
@@ -131,7 +131,6 @@
StringBuffer sbPlain = new StringBuffer();
ArrayList<MessageAttachment> attachmentList = new ArrayList<MessageAttachment>();
-
boolean isHTML = handleParts(message, con, sbPlain, attachmentList);
@@ -144,6 +143,7 @@
mDetails.setMessageAttachments(attachmentList);
mDetails.setRawHeader(message.getAllHeaders().toString());
+
return mDetails;
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java Wed Dec 2 17:30:17 2009
@@ -47,6 +47,13 @@
* @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
*/
public Class<SendMessage> getActionType() {
+ try {
+
+ } catch (Exception e) {
+ // TODO: handle exception
+ } finally {
+
+ }
return SendMessage.class;
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/HupaDispatchServlet.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/HupaDispatchServlet.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/HupaDispatchServlet.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/HupaDispatchServlet.java Wed Dec 2 17:30:17 2009
@@ -50,7 +50,9 @@
public Result execute( Action<?> action ) throws ActionException {
try {
logger.info("HupaDispatchServlet: executing: " + action.getClass().getName().replaceAll("^.*\\.",""));
- return super.execute(action);
+ Result res = super.execute(action);
+ logger.info("HupaDispatchServlet: finished: " + action.getClass().getName().replaceAll("^.*\\.",""));
+ return res;
} catch (ActionException e) {
logger.error("HupaDispatchServlet returns an ActionException:" + e.getMessage());
e.printStackTrace();
Modified: james/hupa/trunk/server/src/main/resources/mime/7.msg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/resources/mime/7.msg?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/resources/mime/7.msg (original)
+++ james/hupa/trunk/server/src/main/resources/mime/7.msg Wed Dec 2 17:30:17 2009
@@ -1,7 +1,9 @@
Return-Path: <no...@foo.com>
MIME-Version: 1.0
-From: Mickey <no...@foo.com>
+From: Mickey <mi...@foo.com>
+To: Donald <do...@foo.com>
+Reply-to: list@foo.com
Date: Thu, 29 Oct 2009 08:05:36 +0100
Message-ID: <50...@mail.gmail.com>
Subject: html with inline images
Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/Util.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/Util.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/Util.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/Util.java Wed Dec 2 17:30:17 2009
@@ -52,7 +52,7 @@
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i));
if (i < list.size()-1) {
- sb.append(", ");
+ sb.append(", ");
}
}
return sb.toString();
Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java?rev=886211&r1=886210&r2=886211&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java Wed Dec 2 17:30:17 2009
@@ -30,6 +30,7 @@
private static final long serialVersionUID = 5208272852772006815L;
private String from;
private String subject;
+ private String replyto;
private ArrayList<String> to;
private ArrayList<String> cc;
private boolean hasAttachment;
@@ -48,6 +49,7 @@
return "From='" + from
+ "' To='" + toList
+ "' CC='" + ccList
+ + "' ReplyTo='" + replyto
+ "' Subject='" + subject
+ "' Attachments=" + hasAttachment;
}
@@ -114,6 +116,13 @@
this.to = to;
}
+ public String getReplyto() {
+ return replyto;
+ }
+
+ public void setReplyto(String replyto) {
+ this.replyto = replyto;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org