📄 jnimailbridge.java
字号:
import java.util.*;
class MailMessage {
public String fromAddress;
public String subject;
public String body;
public MailMessage(String from, String subj, String b)
{
fromAddress = from;
subject = subj;
body = b;
}
public String toString()
{
return("FROM: " + fromAddress + " SUBJECT: " + subject);
}
}
class MailFolder {
String folderName="";
ArrayList<MailMessage> messageList;
public MailFolder(String name)
{
setFolderName(name);
messageList = new ArrayList<MailMessage>();
}
public String getFolderName()
{
return(folderName);
}
public void setFolderName(String name)
{
folderName = name;
}
public int getMessageCount()
{
return(messageList.size());
}
public MailMessage getMessage(int index)
{
if(index < 0 || index >= messageList.size()) {
return(null);
}
return((MailMessage)messageList.get(index));
}
public void addMessage(MailMessage msg)
{
messageList.add(msg);
}
public void clearMessages()
{
messageList = new ArrayList<MailMessage>();
}
public String toString()
{
return(folderName);
}
}
public class JNIMailBridge {
ArrayList<MailFolder> mailFolders;
public native void sendMail(String profile, String to, String subject, String body);
public native void getFolderContents(String profile, String topFolderName, String folderName);
public native void getFolderList(String profile, String topFolderName);
static {
System.loadLibrary("MailLibrary");
}
public void clearFolderList()
{
mailFolders = new ArrayList<MailFolder>();
}
public void addFolder(String folderName)
{
mailFolders.add(new MailFolder(folderName));
}
public int getFolderCount()
{
return(mailFolders.size());
}
public MailFolder getFolder(int index)
{
if(index < 0 || index >= mailFolders.size()) {
return(null);
}
return(mailFolders.get(index));
}
public MailFolder findFolder(String folderName)
{
int index;
MailFolder folder;
for(index=0; index<mailFolders.size(); index++) {
folder = mailFolders.get(index);
if(folder.getFolderName().equals(folderName)) {
return(folder);
}
}
return(null);
}
public void clearMessageList(String folderName)
{
MailFolder folder;
folder = findFolder(folderName);
if(folder != null) {
folder.clearMessages();
}
}
public void addMessage(String folderName, String from, String subj, String body)
{
MailFolder folder;
MailMessage msg;
folder = findFolder(folderName);
if(folder != null) {
msg = new MailMessage(from, subj, body);
folder.addMessage(msg);
}
}
public static void main(String args[])
{
try {
JNIMailBridge bridge = new JNIMailBridge();
bridge.getFolderList("Outlook", "Top of Personal Folders");
System.out.println("List of folders inside Personal Folders collection");
for(int i=0; i<bridge.mailFolders.size(); i++) {
System.out.println(" " + i + ": " + bridge.mailFolders.get(i));
}
bridge.getFolderContents("Outlook", "Top of Personal Folders", "Example");
MailFolder folder;
folder = bridge.findFolder("Example");
System.out.println("\n\nList of messages inside folder 'Example'");
for(int i=0; i<folder.getMessageCount(); i++) {
System.out.println(" " + i + ": " + folder.getMessage(i));
}
} catch(Exception e) {
System.out.println("Exception: " + e);
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -