-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathImapSink.java
More file actions
83 lines (71 loc) · 2.56 KB
/
ImapSink.java
File metadata and controls
83 lines (71 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.util.MailSSLSocketFactory;
import java.security.KeyStore;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import mcpy.emailModel.*;
class ImapSink {
private String userName;
private String passWord;
private String address;
private IMAPFolder inbox;
private Session session;
public ImapSink(String userName_, String passWord_, String address_) {
userName = userName_;
passWord = passWord_;
address = address_;
}
public boolean connect() {
try {
Properties props = System.getProperties();
System.out.println("imapsink connect");
props.setProperty("mail.imap.auth.plain.disable", "false");
props.setProperty("mail.imap.auth.login.disable", "false");
props.setProperty("mail.imap.starttls.enable", "true");
props.setProperty("mail.imaps.auth.plain.disable", "false");
props.setProperty("mail.imaps.auth.login.disable", "false");
props.setProperty("mail.imaps.starttls.enable", "true");
KeyStore ks = KeyStore.getInstance("JKS");
session = Session.getInstance(props, null);
System.out.println("imapsink connect");
Store store = null;
store = session.getStore("imap");
System.out.println("imapsink connect");
store.connect(address, userName, passWord);
System.out.println("imapsink connect");
inbox = (IMAPFolder) store.getFolder("Inbox");
inbox.open(Folder.READ_WRITE);
} catch (Exception e) {
System.out.println("imapsink connect exception.");
System.out.println(e.toString());
e.printStackTrace();
return false;
}
return true;
}
public void uploadMessage(Email msg) {
try {
Message message = new MimeMessage(session);
message.setSubject(msg.subject);
for (int i = 0; i != msg.headers.length; i++) {
message.addHeader(msg.headers[i].name, msg.headers[i].value.trim());
}
message.setContent(msg.contents, msg.contType);
message.setFrom(new InternetAddress(msg.from.address, msg.from.fullName));
Message[] uids = inbox.addMessages(new Message[] {
message
});
inbox.setFlags(uids, new Flags(Flags.Flag.SEEN), msg.isRead);
} catch (AddressException e) {
System.out.println("ImapSink::uploadMessage AddressException");
} catch (MessagingException e) {
System.out.println("ImapSink::uploadMessage MessagingException");
} catch (Exception e) {
System.out.println("ImapSink::uploadMessage miscellaneous exception");
}
}
}