Java — Самоучитель

  • 15. Java — Массивы
  • 16. Java — Дата и время
  • 17. Java — Регулярные выражения
  • 18. Java — Методы
  • 21. Java — Вложенные и внутренние классы
  • 22. Java — Наследование
  • 23. Java — Переопределение
  • 24. Java — Полиморфизм
  • 25. Java — Абстракция
  • 26. Java — Инкапсуляция
  • 27. Java — Интерфейсы
  • 28. Java — Пакеты
  • 31. Java — Дженерики
  • 32. Java — Сериализация
  • 34. Java — Отправка Email
  • 36. Java — Основы работы с апплетами
  • 37. Java — Javadoc
  • 34. Java — Отправка Email

    Отправка Email с использованием Java-приложения достаточно проста, но для начала на вашем компьютере должны быть установлены JavaMail API и Java Activation Framework (JAF).

    • Вы можете загрузить последнюю версию JavaMail (Версия 1.2) с базового веб-сайта Java.
    • Вы можете загрузить последнюю версию JAF (Версия 1.1.1) с базового веб-сайта Java.

    Загрузите и разархивируйте эти файлы, во вновь созданных каталогах верхнего уровня вы обнаружите несколько jar-файлов для обоих приложений. Вам необходимо добавить файлы mail.jar и activation.jar в ваш CLASSPATH.

    Отправка Email

    Вот пример отправки в Java простого электронного письма с вашего компьютера. Предполагается, что ваш локальный хост подключен к Интернету и вполне способен отправлять электронную почту.

    Пример

    // Название файла SendEmail.java
    
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    
    public class SendEmail {
    
       public static void main(String [] args) {    
          // Необходимо указать адрес электронной почты получателя
          String to = "abcd@gmail.com";
    
          // Необходимо указать адрес электронной почты отправителя
          String from = "web@gmail.com";
    
          // Предполагая, что вы отправляете электронное письмо с localhost
          String host = "localhost";
    
          // Получить свойства системы
          Properties properties = System.getProperties();
    
          // Настроить почтовый сервер
          properties.setProperty("mail.smtp.host", host);
    
          // Получение объекта Session по умолчанию
          Session session = Session.getDefaultInstance(properties);
    
          try {
             // Создание объекта MimeMessage по умолчанию
             MimeMessage message = new MimeMessage(session);
    
             // Установить От: поле заголовка
             message.setFrom(new InternetAddress(from));
    
             // Установить Кому: поле заголовка
             message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    
             // Установить тему: поле заголовка
             message.setSubject("Это тема письма!");
    
             // Теперь установите фактическое сообщение
             message.setText("Это актуальное сообщение");
    
             // Отправить сообщение
             Transport.send(message);
             System.out.println("Сообщение успешно отправлено....");
          } catch (MessagingException mex) {
             mex.printStackTrace();
          }
       }
    }
    

    Скомпилируйте и запустите эту программу, чтобы отправить Email в Java:

    $ java SendEmail
    Сообщение успешно отправлено....
    

    Если вы хотите отправить электронное письмо нескольким получателям, то для указания нескольких ID (идентификаторов) электронной почты необходимо использовать следующие методы:

    void addRecipients(Message.RecipientType type, Address[] addresses)
       throws MessagingException
    

    Ниже представлено описание параметров:

    • type (тип) - Он будет установлен в TO, CC или BCC. В данном CC - это точная копия, а BCC - это черновая копия. Пример: RecipientType.TO (сообщение. Тип получателя. ТО)
    • addresses (адреса) - это массив адресов электронной почты. Вам нужно будет использовать метод InternetAddress () (адрес в Интернете) при указании ID электронной почты.

    Отправка HTML Email

    Вот пример отправки электронного письма HTML с вашего компьютера. Предполагается, что ваш локальный хост подключен к Интернету и вполне способен отправлять электронную почту.

    Этот пример очень похож на предыдущий, за исключением того, что здесь мы используем метод setContent() (настройка содержимого) для установки содержимого, вторым аргументом которого является «text / html», чтобы указать то, что содержимое HTML включено в сообщение.

    Используя этот пример, вы можете отправить настолько большой контент HTML, насколько вам необходимо.

    Пример

    // Название файла SendHTMLEmail.java
    
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    
    public class SendHTMLEmail {
    
       public static void main(String [] args) {
          // Необходимо указать адрес электронной почты получателя
          String to = "abcd@gmail.com";
    
          // Необходимо указать адрес электронной почты отправителя
          String from = "web@gmail.com";
    
          // Предполагая, что вы отправляете электронное письмо с localhost
          String host = "localhost";
    
          // Получить свойства системы
          Properties properties = System.getProperties();
    
          // Настроить почтовый сервер
          properties.setProperty("mail.smtp.host", host);
    
          // Получение объекта Session по умолчанию
          Session session = Session.getDefaultInstance(properties);
    
          try {
             // Создание объекта MimeMessage по умолчанию
             MimeMessage message = new MimeMessage(session);
    
             // Установить От: поле заголовка.
             message.setFrom(new InternetAddress(from));
    
             // Установить Кому: поле заголовка
             message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    
             // Установить тему: поле заголовка
             message.setSubject("Это тема письма!");
    
             // Отправьте фактическое HTML-сообщение любого размера
             message.setContent("<h1>Это актуальное сообщение</h1>", "text/html");
    
             // Отправить сообщение
             Transport.send(message);
             System.out.println("Сообщение успешно отправлено....");
          } catch (MessagingException mex) {
             mex.printStackTrace();
          }
       }
    }
    

    Скомпилируйте и запустите эту программу, чтобы отправить электронное письмо HTML:

    $ java SendHTMLEmail
    Сообщение успешно отправлено....
    

    Отправка вложения в электронном письме

    Вот пример отправки электронного письма с вложением с вашего компьютера. Предполагается, что ваш локальный хост подключен к Интернету и вполне способен отправлять электронную почту.

    Пример

    // File Name SendFileEmail.java
    
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    
    public class SendFileEmail {
    
       public static void main(String [] args) {     
          // Необходимо указать адрес электронной почты получателя
          String to = "abcd@gmail.com";
    
          // Необходимо указать адрес электронной почты отправителя
          String from = "web@gmail.com";
    
          // Предполагая, что вы отправляете электронное письмо с localhost
          String host = "localhost";
    
          // Получить свойства системы
          Properties properties = System.getProperties();
    
          // Настроить почтовый сервер
          properties.setProperty("mail.smtp.host", host);
    
          // Получение объекта Session по умолчанию
          Session session = Session.getDefaultInstance(properties);
    
          try {
             // Создание объекта MimeMessage по умолчанию
             MimeMessage message = new MimeMessage(session);
    
             // Установить От: поле заголовка
             message.setFrom(new InternetAddress(from));
    
             // Установить Кому: поле заголовка
             message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
    
             // Установить тему: поле заголовка
             message.setSubject("Это тема письма!");
    
             // Создание части сообщения
             BodyPart messageBodyPart = new MimeBodyPart();
    
             // Заполнение сообщения
             messageBodyPart.setText("Это тело сообщения");
             
             // Создание составного сообщения
             Multipart multipart = new MimeMultipart();
    
             // Установить часть текстового сообщения
             multipart.addBodyPart(messageBodyPart);
    
             // Часть вторая вложения
             messageBodyPart = new MimeBodyPart();
             String filename = "file.txt";
             DataSource source = new FileDataSource(filename);
             messageBodyPart.setDataHandler(new DataHandler(source));
             messageBodyPart.setFileName(filename);
             multipart.addBodyPart(messageBodyPart);
    
             // Отправить полные части сообщения
             message.setContent(multipart );
    
             // Отправить сообщение
             Transport.send(message);
             System.out.println("Сообщение успешно отправлено....");
          } catch (MessagingException mex) {
             mex.printStackTrace();
          }
       }
    }
    

    Скомпилируйте и запустите эту программу, чтобы отправить электронное письмо HTML:

    $ java SendFileEmail
    Сообщение успешно отправлено....
    

    Часть аутентификации пользователя

    Если для аутентификации требуется предоставить ID пользователя и пароль серверу электронной почты, вы можете установить эти свойства следующим образом:

    props.setProperty("mail.user", "myuser");
    props.setProperty("mail.password", "mypwd");
    

    Остальная часть механизма отправки электронной почты останется такой, как описано выше.

    Поделитесь:

    О сайте

    Все материалы сайта proglang.su являются результатом труда его авторов. Копирование материалов в некоммерческих целях без указания источника в виде прямой ссылки на сайт proglang.su запрещено. Использование материалов в коммерческих целях разрешено только с письменного согласия автора. Нарушение авторских прав преследуется по закону. Мы это делаем, чтобы защитить плоды своих трудов от воровства. © 2014-2019

    Присоединяйтесь


    Обратная связь