JavaMail API - Server SMPT Gmail

Di semua bab sebelumnya kami menggunakan server JangoSMPT untuk mengirim email. Pada bab ini kita akan belajar tentang server SMPT yang disediakan oleh Gmail. Gmail (antara lain) menawarkan penggunaan server SMTP publik mereka secara gratis.

Detail server SMTP Gmail dapat ditemukan di sini . Seperti yang Anda lihat di detailnya, kami dapat menggunakan koneksi TLS atau SSL untuk mengirim email melalui server SMTP Gmail.

Prosedur mengirim email menggunakan server SMTP Gmail sama seperti yang dijelaskan di bab Mengirim Email , kecuali bahwa kami akan mengubah server host. Sebagai prasyarat, alamat email pengirim harus merupakan akun gmail yang aktif. Mari kita coba contoh.

Buat Kelas Java

Buat file Java SendEmailUsingGMailSMTP, isinya sbb:

package com.tutorialspoint;

import java.util.Properties;

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;

public class SendEmailUsingGMailSMTP {
   public static void main(String[] args) {
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";//change accordingly

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";//change accordingly
      final String username = "abc";//change accordingly
      final String password = "*****";//change accordingly

      // Assuming you are sending email through relay.jangosmtp.net
      String host = "smtp.gmail.com";

      Properties props = new Properties();
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.starttls.enable", "true");
      props.put("mail.smtp.host", host);
      props.put("mail.smtp.port", "587");

      // Get the Session object.
      Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
         protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
         }
      });

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

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

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

         // Set Subject: header field
         message.setSubject("Testing Subject");

         // Now set the actual message
         message.setText("Hello, this is sample for to check send "
            + "email using JavaMailAPI ");

         // Send message
         Transport.send(message);

         System.out.println("Sent message successfully....");

      } catch (MessagingException e) {
            throw new RuntimeException(e);
      }
   }
}

Di sini host ditetapkan sebagai smtp.gmail.com dan port ditetapkan sebagai 587 . Di sini kami telah mengaktifkan koneksi TLS.

Kompilasi dan Jalankan

Sekarang kelas kita sudah siap, mari kita kompilasi kelas di atas. Saya telah menyimpan kelas SendEmailUsingGMailSMTP.java ke direktori:/home/manisha/JavaMailAPIExercise. Kita membutuhkan jars javax.mail.jar dan activation.jar di classpath. Jalankan perintah di bawah ini untuk mengkompilasi kelas (kedua jars ditempatkan di direktori / home / manisha /) dari command prompt:

javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmailUsingGMailSMTP.java

Sekarang kelas telah dikompilasi, jalankan perintah di bawah ini untuk menjalankan:

java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmailUsingGMailSMTP

Verifikasi Output

Anda akan melihat pesan berikut di konsol perintah:

Sent message successfully....