Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа с электронной почтой - общий обзор
Большинство пользователей компьютеров уже знакомы с электронной почтой, которая намного опережает по популярности все остальные услуги, предоставляемые интернетом. Сообщение электронной почты состоит из двух компонентов. Первый из них — заголовок, содержащий информацию о сообщении, включая адреса отправителе и получателя(лей). Второй компонент сообщения — его содержимое, которое, в свою очередь, может состоять из нескольких частей (например, текста и одного или более присоединенных файлов). Ниже приведен пример такого сообщения: Received: from f45.lawl5.hotmail.com (64.4.23.45) by mail01b.rapidsite.net (RS ver 1.0.60s) with SMTP id 032409761 for <reader@hotmail.con>; Thu, 19 Jul 2001 05:07:14 -0400 (EOT) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Thu, 19 Jul 2001 02:07:05 -0700 Received: from 193.250.45.34 by Iwl5fd.lawl5.hotmail.msn.com with HTTP; Thu, 19 Jul 2001 09:07:04 GMT X-Originating-IP: [193.250.45.34] From: sender@hotmail.com To: readerOhotmail.com Вес: Subject: Тебе стоит знать Date: Thu, 19 Jul 2001 09:07:04 Mime-Versidn: 1.0 Content-Type: text/plain; format=flowed Message - ID: <F45ifWoqFXfyY0QUUBP0000040b@hotmail.com> X-OriginalArrivalTime: 19 Jul 2001 09:07:05.0117 (UTC) FILETIME=[2E1D5CDO:01C11032] X-Loop-Detect: 1 X-UIDL: Cbae30a3b2b484793e76dbbael863ead.9c PA: Я согласен. JB В этом сообщении заголовок и содержимое разделены пустой строкой. Каждый атрибут заголовка располагается в собственной строке, содержащей имя атрибута, отделенное от его значения двоеточием. Программа-почтовый клиент знает, как принимать и отправлять сообщения потому, что умеет работать с различными почтовыми протоколами. В их число входят Simple Mail Transfer Protocol (SMTP), применяющийся для отправки почты, и Post Office Protocol 3 (РОРЗ) или Internet Message Access Protocol 4 (IMAP4), использующиеся для приема почты. IMAP4 несколько превосходит РОРЗ по возможностям; он, например, может работать с папками и маркерами состояния. Существует еще один протокол — Multipurpose Internet Mail Extensions (MIME), являющийся стандартным форматом передачи сообщений в интернете. Что делает JavaMail? API JavaMail представляет собой набор абстрактных API, являющихся надстройкой над системой поставщика услуг электронной почты. API JavaMail, как и другие API J2EE, создает для клиентских приложений Java стандартную и независимую среду, в которой они могут свободно пользоваться почтой, что позволяет разработчикам создавать с помощью J2EE программы, обеспечивающие следующие возможности: Создание сообщений, в том числе и многокомпонентных, содержащих присоединенные файлы
Отправка сообщений на определенные серверы Получение сообщений и сохранение их в папках Разработчику, использующему J2EE, нет необходимости разбираться в соответствующих протоколах. Основную работу с почтой выполняют провайдеры услуг, так как содержат обработчики почтовых протоколов (например РОРЗ, IMAP4, SMTP). В стандартом варианте JavaMail фирмы Sun имеются провайдеры для всех наиболее распространенных протоколов (SMTP, IMAP4, MIME). Кроме того, компанией Sun был создан отдельный провайдер для РОРЗ. Существуют и провайдеры сторонних производителей для приложений наподобие Microsoft Exchange и Lotus Notes, есть и возможность собственноручного создания провайдеров. Архитектура API JavaMail является открытой, так что она сможет работать с протоколами и стандартами будущего. На рис. 14.1 изображено общение клиентского приложения Java с обработчиком протокола провайдера. Провайдеры могут обрабатывать протоколы двух типов. Первый — транспортный (Transport), отправляющий сообщения к пункту назначения. Наиболее распространенным транспортным протоколом является SMTP. Второй — архивный (Store), предоставляющий доступ к сообщениям, уже доставленным в почтовый ящик. Наиболее распространенным архивным протоколом сегодня является РОРЗ, но все большую популярность завоевывает IMAP4. Если клиентское приложение Java работает с пакетами API JavaMail, ему для чтения почты нужно сетевое соединение с сервером РОРЗ или IMAP4. При отправке почты нужно сетевое соединение с почтовым сервером SMTP. Услуги таких серверов предоставляются либо в локальной сети (например, в корпорациях или других организациях), либо Internet-провайдером (ISP) (пользователям коммутируемых/кабельных/DSL каналов связи).
Реестр провайдеров Как уже упоминалось выше, JavaMail является расширяемой системой. Это означает, что если будут разработаны новые протоколы, созданные ранее приложения JavaMail смогут использовать их, когда те будут загружены в реестр провайдеров. Реестр провайдеров — это список доступных провайдеров, которые могут быть обнаружены приложениями на базе JavaMail. Провайдеры, в которые встроен интерфейс JavaMail, перечислены в java-mail.default.providers. При установке пакета, содержащего новый провайдер, в его папке META-INF должен тоже быть создан файл javamail.providers.
Получить список доступных в вашей системе провайдеров можно, откомпилировав и запустив следующий код: import javax.mail.*; class ListProviders { public static void main(String[] args) { java.util.Properties props = System.getProperties(); Session sess = Session.getlnstance(props, null); Provider[] provs = sess. getProviders (); for (int i=0;i < provs. length;++i) { System.out.println(provs[i]); } } } На выходе получится что-то вроде этого: javax.mail.Provider[STORE,рорЗ], com.sun.mail.рорЗ.POP3Store,Sun Microsystems, Inc] javax.mail.Provider[STORE,imap], com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc] javax.mail.Provider[TRANSPORT,smtp], com.sun.mail.smtp.SMTPTransport, Sun Microsystems, Inc] Провайдер услуг создает абстрактные классы с учетом используемых протоколов или системы. Например, провайдер IMAP для реализации JavaMail API использует IMAP4. Клиентские приложения могут создаваться с учетом использования таковой реализации для работы с электронной почтой и ее папками. Для того чтобы программой-провайдером могли пользоваться клиентские приложения JavaMail, последняя должна храниться в пакете. Создать пакет можно следующим образом: Дайте пакету имя. Общепринятой практикой для этого является использование корпоративных доменных имен, но в обратном порядке (например, провайдер РОРЗ компании UCNY Inc. называется com.ucny.mail.pops). Определите классы как public. Это позволит JavaMail создавать экземпляры ваших классов. Загрузите провайдер в JAR-файл. Этот файл должен быть добавлен к пути поиска классов (classpath) клиентского приложения. Создайте для протокола запись в реестре провайдеров. Эта запись представляет собой простой список атрибутов, описывающих данную реализацию. В ней имеется пять пар имя-значение (описывающих реализацию протокола), разделенных точками с запятыми. Описание значений этих атрибутов приведено в табл. 14.1. Создайте соответствие между типом адреса и вашим протоколом. Если вы создали программу, с помощью которой клиентские приложения смогут отправлять почту, необходимо создать соответствие между типом адреса, с которым работает ваша реализация, и вашим протоколом. Соответствие записывается в формате addressType=protocol, где addressType — строка, возвращаемая методом getType() подкласса Address protocol — значение атрибута protocol, которое вы определили на этапе 4 Например, запись, относящаяся к РОРЗ-провайдеру компании UCNY, Inc. выглядит так: protocol=pop3;type=store;class=com.ucny.рорЗ.POP3Store; vendor=UCNY, Inc.;version=l.3
Пользователи или администраторы приложения JavaMail должны ввести в реестр соответствующую запись (вручную или с помощью программы настройки). Таким образом происходит подключение провайдера к системе JavaMail клиента. Реестр представляет собой набор файлов ресурсов, а файл, в котором содержатся сведения о провайдерах JavaMail, называется javamail.providers. При необходимости JavaMail ведет поиск ресурсных файлов провайдеров в следующем порядке: java.home/lib/javamail.providers META-INF/javamail.providers Разработчики провайдеров должны обеспечивать и соответствующие записи для реестра и требовать, чтобы их вносили в один из этих файлов. Пользователям или администраторам приложения JavaMail, кроме того, придется расположить в реестре address.map соответствия (вручную или с помощью программы настройки). Файл, в котором хранится соответствие, называется javamail.address.map Система JavaMail ищет ресурсные файлы address.map в следующем порядке: java. home/lib/javamail. address, map META-INF/javamail.address.map Разработчики провайдеров должны также обеспечивать соответствия и требовать, чтобы их вносили в один из этих файлов.
|
||||||||||||||||||||
Последнее изменение этой страницы: 2020-03-02; просмотров: 110; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.223.94.103 (0.008 с.) |