1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.james.fetchmail;
23
24 import javax.mail.Folder;
25 import javax.mail.MessagingException;
26 import javax.mail.Store;
27
28
29
30
31
32
33
34 public class StoreProcessor extends ProcessorAbstract
35 {
36
37
38
39
40 protected StoreProcessor(Account account)
41 {
42 super(account);
43 }
44
45
46
47
48
49
50
51
52 public void process() throws MessagingException
53 {
54 Store store = null;
55 Folder folder = null;
56
57 StringBuffer logMessageBuffer =
58 new StringBuffer("Starting fetching mail from server '");
59 logMessageBuffer.append(getHost());
60 logMessageBuffer.append("' for user '");
61 logMessageBuffer.append(getUser());
62 logMessageBuffer.append("' in folder '");
63 logMessageBuffer.append(getJavaMailFolderName());
64 logMessageBuffer.append("'");
65 getLogger().info(logMessageBuffer.toString());
66
67 try
68 {
69
70 store = getSession().getStore(getJavaMailProviderName());
71
72
73 if (getHost() != null
74 || getUser() != null
75 || getPassword() != null)
76 store.connect(getHost(), getUser(), getPassword());
77 else
78 store.connect();
79
80
81 folder = store.getFolder(getJavaMailFolderName());
82 if (folder == null)
83 getLogger().error(getFetchTaskName() + " No default folder");
84
85
86 new FolderProcessor(folder, getAccount()).process();
87
88 }
89 catch (MessagingException ex)
90 {
91 getLogger().error(
92 "A MessagingException has terminated processing of this Folder",
93 ex);
94 }
95 finally
96 {
97 try
98 {
99 if (null != store && store.isConnected())
100 store.close();
101 }
102 catch (MessagingException ex)
103 {
104 getLogger().error(
105 "A MessagingException occured while closing the Store",
106 ex);
107 }
108 logMessageBuffer =
109 new StringBuffer("Finished fetching mail from server '");
110 logMessageBuffer.append(getHost());
111 logMessageBuffer.append("' for user '");
112 logMessageBuffer.append(getUser());
113 logMessageBuffer.append("' in folder '");
114 logMessageBuffer.append(getJavaMailFolderName());
115 logMessageBuffer.append("'");
116 getLogger().info(logMessageBuffer.toString());
117 }
118 }
119
120 }