To fecilitate mail communication using local server with SMTP and IMAP. Can be extended as mail client
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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jMail; import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; import java.util.*; public class Mail { private String to; private String from; private String message; private String subject; private String smtpServ; private String userName; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; System.out.println("password:"+password); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; System.out.println("userName:"+userName); } /** * @return the to */ public String getTo() { return to; } /** * @param to the to to set */ public void setTo(String to) { this.to = to; } /** * @return the from */ public String getFrom() { return from; } /** * @param from the from to set */ public void setFrom(String from) { this.from = from; } /** * @return the message */ public String getMessage() { return message; } /** * @param message the message to set */ public void setMessage(String message) { this.message = message; } /** * @return the subject */ public String getSubject() { return subject; } /** * @param subject the subject to set */ public void setSubject(String subject) { this.subject = subject; } /** * @return the smtpServ */ public String getSmtpServ() { return smtpServ; } /** * @param smtpServ the smtpServ to set */ public void setSmtpServ(String smtpServ) { this .smtpServ = smtpServ; } public int sendMail(){ try { Properties props = System.getProperties(); // -- Attaching to default Session, or we could start a new one -- props.put( "mail.transport.protocol" , "smtp" ); props.put( "mail.smtp.starttls.enable" , "true" ); props.put( "mail.smtp.host" ,smtpServ); props.put( "mail.smtp.auth" , "true" ); Authenticator auth = new SMTPAuthenticator(); Session session = Session.getInstance(props, auth); // -- Create a new message -- Store store=session.getStore( "imaps" ); store.connect(smtpServ, userName,password); Folder folder=store.getFolder( "INBOX" ); folder.open(Folder.READ_ONLY); Message mess[]=folder.getMessages(); for ( int i=mess.length- 1 ;i>= 0 ;i--) { System.out.println( "" +i+ ":" +mess[i].getFrom()[ 0 ]+ "t" +mess[i].getSubject()); } Message msg = new MimeMessage(session); // -- Set the FROM and TO fields -- msg.setFrom( new InternetAddress(from)); String rec[]=to.split( "," ); for ( int i= 0 ;i<rec.length;i++) { System.out.println( "rec:" +rec[i]); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(rec[i], false )); msg.setSubject(subject); msg.setText(message); // -- Set some other header information -- msg.setHeader( "Mail" , "MailApi" ); msg.setSentDate( new Date()); // -- Send the message -- Transport.send(msg); System.out.println( "Message sent to" + rec[i]+ " OK." ); } return 0 ; } catch (Exception ex) { ex.printStackTrace(); System.out.println( "Exception " +ex); return - 1 ; } } private class SMTPAuthenticator extends javax.mail.Authenticator { @Override public PasswordAuthentication getPasswordAuthentication() { String username =userName; String pass =password; return new PasswordAuthentication(username, pass); } } } |