Java mail on Exchange Server 2007


Pada artikel kali ini saya coba untuk menjabarkan bagaimana cara untuk mengirimkan email melalui Java. <*reader*>Yah ini mah common banget – cari di internet juga udah banyak contohnya </*reader*>.  Tenang dulu, sesuai dengan judulnya saya juga akan coba bahas common problem yang terjadi pada saat mengirimkan email melalui Echange Server 2007.

1.Pertama – tama saya berikan contoh untuk

 String host = "your mail server";
 String from = "your email";

 Properties props = System.getProperties();
 props.put("mail.smtp.host", host);
 props.put("mail.smtp.user", from);
 props.put("mail.smtp.port", "25");
 props.put("mail.debug", "true");

 //props.put("mail.smtp.auth", "true");
 //String userId = "user01";
 //String userPassword = "password01";

 String[] to = {"your email"};

 Session session = Session.getDefaultInstance(props, null);
 MimeMessage message = new MimeMessage(session);
 message.setFrom(new InternetAddress(from));
 InternetAddress[] toAddress = new InternetAddress[to.length];

 // To get the array of addresses
 for( int i=0; i < to.length; i++ ) { // changed from a while loop
 toAddress[i] = new InternetAddress(to[i]);
 }
 for( int i=0; i < toAddress.length; i++) { // changed from a while loop
 message.addRecipient(Message.RecipientType.TO, toAddress[i]);
 }

 String bodyMessage = "TESTING";
 message.setSubject("EMAIL TESTING");
 message.setText(bodyMessage);

 Transport transport = session.getTransport("smtp");

 try{
//transport.connect(userId, userPassword);
 transport.connect();
 transport.sendMessage(message, message.getAllRecipients());
 transport.close();
 }
 catch(Exception e){
 System.out.println(e.getMessage());
 }
 

Sekarang coba dijalankan dulu syntax di atas. Jangan lupa diliat output nya, untuk men-trace jika ada error. Jika aplikasi ini gagal mengirimkan email ada beberapa hal yang harus anda check:

  • Check apakah PORT 25 di block Firewall tidak
  • Coba check antivirus anda, apakah java.exe sudah masuk ke exception list untuk bagian mail sendernya. (Saya pernah mengalami hal ini pada antivirus Mc Affe)
  • Check Settingan Exchange Server anda. Server Configuration -> Hub Transport -> Default your server. Apakah anonymous nya di check list? Kemungkinan besar anonymousnya tidak di check list, jika hal ini terjadi berarti Security Networking anda hanya mengijinkan pengiriman email oleh user dengan authentikasi.

2. Contoh pengiriman email menggunakan authentikasi, tinggal dibuka comment nya saja. 😉

 String host = "your mail server";
 String from = "your email";

 Properties props = System.getProperties();
 props.put("mail.smtp.host", host);
 props.put("mail.smtp.user", from);
 props.put("mail.smtp.port", "25");
 props.put("mail.debug", "true");

 props.put("mail.smtp.auth", "true");
 String userId = "user01";
 String userPassword = "password01";

 String[] to = {"your email"};

 Session session = Session.getDefaultInstance(props, null);
 MimeMessage message = new MimeMessage(session);
 message.setFrom(new InternetAddress(from));
 InternetAddress[] toAddress = new InternetAddress[to.length];

 // To get the array of addresses
 for( int i=0; i < to.length; i++ ) { // changed from a while loop
 toAddress[i] = new InternetAddress(to[i]);
 }
 for( int i=0; i < toAddress.length; i++) { // changed from a while loop
 message.addRecipient(Message.RecipientType.TO, toAddress[i]);
 }

 String bodyMessage = "TESTING";
 message.setSubject("EMAIL TESTING");
 message.setText(bodyMessage);

 Transport transport = session.getTransport("smtp");

 try{
 transport.connect(userId, userPassword);
 //transport.connect();
 transport.sendMessage(message, message.getAllRecipients());
 transport.close();
 }
 catch(Exception e){
 System.out.println(e.getMessage());
 }
 

Untuk mengirimkan email yang masih ke dalam Local Area Networks saja, seharusnya tidak ada masalah.

3. sekarang coba anda ganti To – nya ke alamat email di luar jaringan anda, misalnya ke gmail atau ke yahoo. Jika tidak bisa terkirim berarti harus ada penambahan beberapa settingan lagi pada Exchange Server anda.

Silahkan melihat referensi berikut:
http://msexchangeteam.com/archive/2006/12/28/432013.aspx

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s