Работа с почтовым сервером на Java
[RUS] [UKR] [ENG] [Библиотека] [Ссылки] [Отчёт по поиску] [Автореферат]                                     [ДонНТУ] [Сайт магистров]
 

 

     

    JavaMail API - это набор абстрактных API, которые моделируют почтовую систему. API предоставляет платформенно и протоколо независимую оболочку для построения Java технологий, базирующихся на почтовых приложениях. JavaMail API предоставляет средства для чтения и посылки почтовых сообщений. Сервис провайдеры реализуют необходимые протоколы. Некоторые сервис провайдеры включены в пакет JavaMail API; другие доступны отдельно. JavaMail API реализовано как Java пакет в JDK 1.4 и позднее на любой операционной системе, он также входит в состав Java Platform, Enterprise Edition (Java EE). API можно загрузить с http://java.sun.com/products/javamail/. Вам всё ещё необходимо соединение с почтовым сервером для посылки-приёма сообщений, но API предоставляет интерфейс для создания этого соединения.

    Для отправки сообщения необходимо понимание работы классов: Session, Message Address, Transport. Если необходимо использовать включения в сообщения, то необходимы также: Multipart, BodyPart, DataSource, DataHandler.

    Класс Session представляет почтовую сессию с почтовым сервером. Все операции требуют соединения с почтовым сервером, поэтому данное соединения необходимо создать. Сессию можно получить с помощью getDefaultInstance() или getInstance() методов класса Session. getDefaultInstance() метод возвращает общую для всех сессию, а getInstance() метод каждый раз возвращает новую сессию. Для создания сессии необходимо передать параметры, которые определяют свойства сессии, такие как адресс почтового сервера (mail.host), название используемого протокола (mail.transport.protocol), адреса источника (mail.from и mail.user), необходимость аутентификации при соединении к серверу (mail.smtp.auth). При использовании аутентификации необходимо реализовать метод private static Authenticator getAuthentificator(), который как следует из описания возвращает аутентификатор, исползуемый при соединении. Аутентификатор состоит из логина и пароля для подключения к серверу.

Properties properties = new Properties();
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.host", smtpHost);
properties.setProperty("mail.user",from);
properties.setProperty("mail.from",from);
properties.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(properties, getAuthentificator());

private static Authenticator getAuthentificator() {
    return new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("your login ","your password ");
    }
};

    После создания сессии необходимо создать сообщение. Message класс представляет почтовое сообщение - это абстрактный класс:

MimeMessage message = new MimeMessage(session);

   После создания сообщения необходимо определить его содержимое. Каждая часть сообщения имеет соответствующий метод для установки:

setFrom() используется для указания From адреса
addRecipient() используется для указания To, CC, и BCC адресов
setSubject() используется для указания темы сообщения
setText() используется для указания текста сообщения

   Для установки From или To полей сообщения необходим класс Address, который создаётся на основе InternetAddress класса. Адресс создаётся из строки. Для указания получателей необходимо использовать метод addRecipient(), с помощью которого можно указать поле To, CC или BCC (скрытая копия) поля. Класс RecipientType содержит указанные выще константы:

Message.RecipientType.TO
Message.RecipientType.CC
Message.RecipientType.BCC

   Всё, что необходимо для простого сообщения - указать тему сообщения и текст сообщения с помощью функций setSubject() и setText().

   После создания сообщения и установки всех необходимых полей его необходимо отправить - для этого используется класс Transport. Transport.send(message) выполняет автоматическое соединение по указанному в параметрах протоколу и передаёт сообщение по указанным в сообщении адресам.

   Для иллюстрации работы JavaMail был написан апплет, котрый выполняет отсылку простого сообщения на указанный адресс. Из приведённого описания очевидно, что приём и отправка почтовых сообщений в Java не вызывает никаких трудностей. JavaMail получил широкое распространение как в коммерческих приложениях так и в мобильных почтовых клиентах, среди мобильных клиентов следует выделить наиболее полноценные и многофункциональные Columba, FlurryMail, MailMan, TRICAST Mail.

Исходный текст можно загрузить здесь.

Готовый апплет можно загрузить здесь. Запустить апплет.

Использованные материалы

1. Техническая документация с официального сайта Sun

2. Прием почты при помощи JavaMail(tm) API

 
[RUS] [UKR] [ENG] [Библиотека] [Ссылки] [Отчёт по поиску] [Автореферат]                                     [ДонНТУ] [Сайт магистров]