1 21 22 package uk.org.primrose.pool.jmx; 23 24 import javax.mail.*; 25 import javax.mail.internet.*; 26 import java.util.*; 27 import java.io.*; 28 import javax.activation.*; 29 30 35 public class SendMail { 36 static String mxServer; 37 String toAddress, fromAddress; 38 String subject, text; 39 MimeBodyPart mbp = null; 40 Multipart mp = new MimeMultipart(); 41 42 43 53 public SendMail(String mxServer, String toAddress, String fromAddress, String subject, String text) { 54 this.mxServer = mxServer; 55 this.toAddress = toAddress; 56 this.fromAddress = fromAddress; 57 this.subject = subject; 58 this.text = text; 59 60 } 61 62 66 public void attach(File file) { 67 try { 68 mbp = new MimeBodyPart(); 69 mbp.setFileName(file.getName()); 70 mbp.setDataHandler(new DataHandler(new FileDataSource(file))); 71 mp.addBodyPart(mbp); 72 } catch (MessagingException me) { 73 me.printStackTrace(); 74 } 75 } 76 77 81 public void send() { 82 Properties props = System.getProperties(); 83 props.put("mail.smtp.host", mxServer); 84 Session session = Session.getDefaultInstance(props, null); 85 86 try { 87 Message msg = new MimeMessage(session); 88 msg.setFrom(new InternetAddress(fromAddress)); 89 msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress, false)); 90 msg.setSubject(subject); 91 msg.setHeader("X-Mailer", "JavaMail"); 92 93 if (mbp != null) { 97 MimeBodyPart mbp2 = new MimeBodyPart(); 98 mbp2.setText(text); 99 mp.addBodyPart(mbp2); 100 msg.setContent(mp); 101 } else { 102 msg.setText(text); 103 } 104 105 Transport.send(msg); 106 } catch (AddressException ae) { 107 ae.printStackTrace(); 108 } catch (MessagingException me) { 109 me.printStackTrace(); 110 } 111 } 112 113 121 public static String nslookup(String domain) { 122 String mailserver = null; 123 try { 124 Process p = Runtime.getRuntime().exec("nslookup -type=mx " +domain); 125 BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 126 127 boolean gotMxLine = false; 128 String line = null; 129 String token = null; 130 131 while ((line = br.readLine()) != null) { 132 gotMxLine = false; 133 StringTokenizer st = new StringTokenizer(line); 135 while (st.hasMoreTokens()) { 136 token = st.nextToken(); 137 if (token.equals("exchanger")) { 138 gotMxLine = true; 139 } 140 if (gotMxLine) { 141 mailserver = token; 142 } 143 } 144 145 } 146 } catch (IOException ioe) { 147 ioe.printStackTrace(); 148 return null; 149 } 150 151 System.out.println("Mail Server to use is :: " +mailserver); 152 return mailserver; 153 } 154 155 160 public static void main(String args[]) { 161 if (args.length < 5) { 162 System.out.println("Usuage :: <mxServer> <toAddress> <fromAddress> <subject> <text>"); 163 System.exit(1); 164 } 165 String msgText = ""; 166 for (int i = 4; i < args.length; i++) { 167 msgText += (" " +args[i]); 168 } 169 170 new SendMail(args[0], args[1], args[2], args[3], msgText).send(); 171 } 172 } 173 | Popular Tags |