1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.wallace.messages;
20
21 import javax.mail.Folder;
22 import javax.mail.Message;
23 import javax.mail.MessagingException;
24
25 import net.sf.wallace.Command;
26 import net.sf.wallace.ServerResponse;
27 import net.sf.wallace.WallaceSession;
28 import net.sf.wallace.commands.AuthCommand;
29
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32
33 /***
34 *
35 *
36 * @author rnewson
37 */
38 public final class AppendMessage extends MailboxMessage {
39
40 protected final Log log = LogFactory.getLog(getClass());
41
42 protected Message message;
43
44 public AppendMessage() {
45
46 }
47
48 public AppendMessage(final String tag, final Message newMessage) {
49 setTag(tag);
50 setMessage(newMessage);
51 }
52
53 public void setMessage(final Message newMessage) {
54 message = newMessage;
55 }
56
57 public Command getCommand() {
58 return new AppendCommand();
59 }
60
61 private class AppendCommand extends AuthCommand {
62
63 protected void onExecute(WallaceSession wallaceSession) {
64 final Folder folder = wallaceSession.getSelectedFolder();
65
66 try {
67 folder.appendMessages(new Message[] { message });
68 wallaceSession.respond(new ServerResponse(AppendMessage.this, "OK APPEND completed."));
69 } catch (MessagingException e) {
70 log.warn("Error while appending message to " + folder, e);
71 wallaceSession.respond(new ServerResponse(AppendMessage.this, "NO APPEND failed."));
72 }
73 }
74
75 }
76
77 }