Senin, 28 Oktober 2013

[JavaMail] Kirim Email di Java

Hari ini mau tulis tentang kirim email di java. Hal - hal yang perlu diketahui dalam mengirim email menggunakan javamail adalah :
- Download javaxmail
- Seting propertis 
- Menambahkan certificate ke keystore yang kita punya
Oke langsung aja kita kode ya

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
 *
 * @author user
 */

public class SendEmail {

    public static void main(String[] args) {
        // Recipient's email ID needs to be mentioned.
        String to = "accountTo@gmail.com";
        // Sender's email ID needs to be mentioned
        String from = "accountFrom@gmail.com";
        // Assuming you are sending email from localhost
        String host = "
smtp.gmail.com";

        // Get system properties
        Properties properties = new Properties();
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.debug", "false");
        properties.put("mail.smtp.ssl.enable", "true");
        properties.put("mail.smtp.port", "465");

        // Get the default Session object.
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("accountFrom@gmail.com", "mypassword");
        }});

        try {
            // Create a default MimeMessage object.
            MimeMessage message = new MimeMessage(session);

            // Set From: header field of the header.
            message.setFrom(
new InternetAddress(from));

            // Set To: header field of the header.
            message.addRecipient(Message.RecipientType.TO,
                   
new InternetAddress(to));

            // Set Subject: header field
            message.setSubject("This is the Subject Line!");

            // Now set the actual message
            message.setText("This is actual message");

            // Send message
            Transport.send(message);
            System.out.println("Sent message successfully....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

Kalau tidak ada error code, saat dijalankan seharusnya ada email dari accountFrom kepada accountTo. Oh iya ini saya coba di eclipse. 
Sebagai tambahan informasi, jika menggunakan netbeans tidak perlu menambahkan certificate ke keystore (kecuali jika certificate mail servernya belum ada di keystore). Lalu jika tidak muncul error saat dijalankan tapi email tidak terkirim, cobalah untuk set "true" pada "mail.debug", yakni ada pada properties.
Sekian dari saya, kalau ada yang kurang bisa dilihat di link ini.
Wassalam :senyum

0 komentar:

Posting Komentar