/* * BDEmailer version 1.1 copyright (c) 1997 David S Mitchell */ import GIT.GVU.IMAP.*; import java.io.*; import java.util.*; import java.lang.*; import java.lang.String.*; /* * Given a user and password, checks e-mail and sends page */ public class BDEmailer{ //an attempt to prevent other classes from accessing the //information in the User Data I/O class private String systemPassword = "KJaslkjdKDDShLBUasdf2837skdj"; private BDUserData sysusers; public void setUserData(BDUserData passedusers) { sysusers = passedusers; } public void stop() { systemPassword = null; sysusers = null; } public void domail() { /* ---------- get data for All Users --------------- */ sysusers.initialize(systemPassword); Enumeration allusers = sysusers.getUsers(systemPassword) while(allusers.hasMoreElements()) { String CurrentUser = allusers.nextElement(); Hashtable email = sysusers.getEmailData(CurrentUser, systemPassword); if (email == NULL) { System.out.println("No email data"); //return(void); } Hashtable pager = sysusers.getPagerData(CurrentUser, systemPassword); if (pager == NULL) { System.out.println("No pager data"); //return(void); } /* ---------- done with data collection for A User --------- */ try { /* ------------ Logon from aquired user data ------------- */ Protocol protocol; Connection connection; Mailbox mailbox; String server = (String)email.get("server"); String user = (String)email.get("user"); String password = (String)email.get("password"); protocol=new Protocol(); protocol.connect(server); protocol.LOGIN(user, password); connection=protocol.getConnection(); connection.SELECT("inbox"); mailbox=connection.getMailbox(); /* ------------- Done with logon ------------------ */ /* ------------- Getting Email messages ----------- */ Message message; BodyPart bodypart; String PageSendStr; String header; String sender, presender; String messagebody; int i = 0; int TotalMessages = mailbox.getExists(); int NewMessages = mailbox.getRecent(); if (NewMessages > 0) { for (i = TotalMessages; i > (TotalMessages-NewMessages); i--) { mailbox.FETCH(i); message=mailbox.getMessage(i); bodypart = message.getBodyPart(); bodypart.FETCH(); SendPage sendpage = new SendPage(); presender = message.getSender().toString(); int CutOn = presender.indexOf("<"); int CutOff = presender.indexOf(">"); sender = presender.substring(1, CutOn - 1); if (sender == null) { sender = presender.substring(CutOn + 1, CutOff); } header = ("FROM: " + sender + "\n" + "SUBJECT: " + message.getSubject() + "\n"); messagebody = bodypart.getData(); int restrictsize = ((Integer)email.get("MaxMsgSize")).intValue(); if (messagebody.length() <= restrictsize) { PageSendStr = (header + "MESSAGE: " + messagebody); } else { PageSendStr = (header + "MESSAGE: Too Long."); } String userarea = (String)pager.get("userarea"); String usernumber = (String)pager.get("usernumber"); sendpage.send_msg_to_pager(userarea, usernumber, PageSendStr); } /* end for */ } /* end if */ mailbox.CLOSE(); protocol.LOGOUT(); } /* end try */ } /* end while */ catch (IMAPException e) { System.out.println("IMAP Exception! " + e); } catch (InternalErr e) { System.out.println("Internal Error! " + e); } } /* end domail */ }