JavaMail API - Kimlik Doğrulama

Önceki bölümlerde E-postaları Kontrol Etme ve E -postaları Alma bölümünde, posta kutunuzun deposuna bağlanırken ana bilgisayarla birlikte yetkilendirme kimlik bilgilerini (kullanıcı reklam şifresi) aktardık. Bunun yerine, Özellikleri ana makineye sahip olacak şekilde yapılandırabilir ve Oturuma özel Kimlik Doğrulayıcı örneğiniz hakkında bilgi verebiliriz . Bu, aşağıdaki örnekte gösterilmektedir:

Java Sınıfı Oluşturun

CheckingMails.java dosyamızı E-postaları Kontrol Etme bölümünden değiştireceğiz . İçeriği aşağıdaki gibidir:

package com.tutorialspoint;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;

public class CheckingMails {

   public static void check(String host, String storeType, String user,
      String password) 
   {
      try {

      // create properties field
      Properties properties = new Properties();

      properties.put("mail.pop3s.host", host);
      properties.put("mail.pop3s.port", "995");
      properties.put("mail.pop3s.starttls.enable", "true");

      // Setup authentication, get session
      Session emailSession = Session.getInstance(properties,
         new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
               return new PasswordAuthentication(
                  "[email protected]", "manisha123");
            }
         });
      // emailSession.setDebug(true);

      // create the POP3 store object and connect with the pop server
      Store store = emailSession.getStore("pop3s");

      store.connect();

      // create the folder object and open it
      Folder emailFolder = store.getFolder("INBOX");
      emailFolder.open(Folder.READ_ONLY);

      // retrieve the messages from the folder in an array and print it
      Message[] messages = emailFolder.getMessages();
      System.out.println("messages.length---" + messages.length);

      for (int i = 0, n = messages.length; i < n; i++) {
         Message message = messages[i];
         System.out.println("---------------------------------");
         System.out.println("Email Number " + (i + 1));
         System.out.println("Subject: " + message.getSubject());
         System.out.println("From: " + message.getFrom()[0]);
         System.out.println("Text: " + message.getContent().toString());
      }

      // close the store and folder objects
      emailFolder.close(false);
      store.close();

      } catch (NoSuchProviderException e) {
         e.printStackTrace();
      } catch (MessagingException e) {
         e.printStackTrace();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {

      String host = "pop.gmail.com";// change accordingly
      String mailStoreType = "pop3";
      String username = "[email protected]";// change accordingly
      String password = "*****";// change accordingly

      check(host, mailStoreType, username, password);

   }

}
EmailSession.setDebug (true) ifadesinin açıklamasını kaldırarak hata ayıklamayı etkinleştirebilirsiniz;

Derleyin ve Çalıştırın

Artık sınıfımız hazır olduğuna göre, yukarıdaki sınıfı derleyelim. CheckingMails.java sınıfını dizine kaydettim:/home/manisha/JavaMailAPIExercise. Sınıf yolunda javax.mail.jar ve activation.jar kavanozlarına ihtiyacımız olacak . Sınıfı (her iki kavanoz da / home / manisha / dizinine yerleştirilir) komut isteminden derlemek için aşağıdaki komutu yürütün:

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

Artık sınıf derlendiğine göre, çalıştırmak için aşağıdaki komutu yürütün:

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

Çıkışı Doğrula

Komut konsolunda aşağıdaki gibi benzer bir mesaj görebilirsiniz:

messages.length---3
---------------------------------
Email Number 1
Subject: Today is a nice day
From: XYZ <[email protected]>
Text: javax.mail.internet.MimeMultipart@45f676cb
---------------------------------
Email Number 2
Subject: hiiii....
From: XYZ <[email protected]>
Text: javax.mail.internet.MimeMultipart@37f12d4f
---------------------------------
Email Number 3
Subject: helloo
From: XYZ <[email protected]>
Text: javax.mail.internet.MimeMultipart@3ad5ba3a