Почта Джакарты - Википедия - Jakarta Mail

Почта Джакарты (ранее JavaMail) - это Jakarta EE API используется для отправки и получения электронное письмо через SMTP, POP3 и IMAP. Jakarta Mail встроена в Java EE платформа, но также предоставляет дополнительный пакет для использования в Java SE.[1]

Текущая версия - 1.6.5, выпущенная в марте 2020 года.[2] Другой Открытый исходный код Существует реализация Jakarta Mail - GNU JavaMail - хотя она поддерживает только версию 1.3 спецификации JavaMail, но предоставляет единственную бесплатную NNTP бэкэнд, который позволяет использовать эту технологию для чтения и отправки группа новостей статьи.

По состоянию на 2019 год программное обеспечение известно как Почта Джакарты, и является частью Джакарта EE бренд (ранее известный как Java EE).

Лицензирование

Jakarta Mail размещается как Открытый исходный код Проект по Eclipse.org под своим новым именем Почта Джакарты.[3]

Большая часть исходного кода Jakarta Mail находится под следующими лицензиями:

  • EPL-2.0
  • GPL-2.0 с лицензией Classpath Exception
  • Исходный код демонстрационных программ находится под лицензией BSD.

Примеры

импорт java.util. *;импорт javax.mail. *;импорт javax.mail.internet. *;импорт javax.activation. *;// Отправляем простое, состоящее из одной части, текстовое / обычное электронное письмообщественный учебный класс TestEmail {    общественный статический пустота главный(Нить[] аргументы) {        // ЗАМЕНИТЕ ВАШИ ЭЛЕКТРОННЫЕ АДРЕСЫ ЗДЕСЬ!        Нить к = "sendToMailAddress";        Нить из = "sendFromMailAddress";        // ЗАМЕНИТЕ ПОЧТОВЫЙ СЕРВЕР ВАШЕГО ISP ЗДЕСЬ!        Нить хозяин = "smtp.yourisp.invalid";        // Создание свойств, получение сеанса        Характеристики реквизит = новый Характеристики();        // Если используется статический Transport.send (),        // нужно указать, на какой хост отправить его        реквизит.положить("mail.smtp.host", хозяин);        // Чтобы увидеть, что творится за сценой        реквизит.положить("mail.debug", "истинный");        Сессия сессия = Сессия.getInstance(реквизит);        пытаться {            // Создание сообщения            Сообщение сообщение = новый MimeMessage(сессия);            // Устанавливаем атрибуты сообщения            сообщение.setFrom(новый Интернет-адрес(из));            Интернет-адрес[] адрес = {новый Интернет-адрес(к)};            сообщение.setRecipients(Сообщение.RecipientType.К, адрес);            сообщение.setSubject(«Проверить электронную почту через Java»);            сообщение.setSentDate(новый Дата());            // Устанавливаем содержимое сообщения            сообщение.setText("Это проверка отправки" +                        "текстовая электронная почта через Java.  n" +                        «Вот строка 2.»);            // Отправляем сообщение            Транспорт.Отправить(сообщение);        }        ловить (MessagingException Мексика) {            // Также выводит все вложенные (связанные) исключения            Мекс.printStackTrace();        }    }}// Конец занятия

Пример кода для отправки составных сообщений электронной почты, сообщений электронной почты в формате HTML и файловых вложений

импорт java.util. *;импорт java.io. *;импорт javax.mail. *;импорт javax.mail.internet. *;импорт javax.activation. *;общественный учебный класс SendMailUsage {    общественный статический пустота главный(Нить[] аргументы) {        // ЗАМЕНИТЕ ЭЛЕКТРОННЫЕ АДРЕСЫ ЗДЕСЬ !!!        Нить к = "sendToMailAddress";        Нить из = "sendFromMailAddress";        // ЗАМЕНИТЕ ПОЧТОВЫЙ СЕРВЕР ВАШЕГО ISP ЗДЕСЬ !!!        Нить хозяин = "smtpserver.yourisp.invalid";        // Создаем свойства для сеанса        Характеристики реквизит = новый Характеристики();        // Если используется статический Transport.send (),        // здесь нужно указать почтовый сервер        реквизит.положить("mail.smtp.host", хозяин);        // Чтобы увидеть, что творится за сценой        реквизит.положить("mail.debug", "истинный");        // Получаем сеанс        Сессия сессия = Сессия.getInstance(реквизит);        пытаться {            // Получаем транспортный объект для отправки электронной почты            Транспорт автобус = сессия.getTransport("smtp");            // Подключаемся здесь только один раз            // Transport.send () отключается после каждой отправки            // Обычно для SMTP не требуется имя пользователя и пароль            автобус.соединять();            //bus.connect("smtpserver.yourisp.net "," имя пользователя "," пароль ");            // Создание сообщения            Сообщение сообщение = новый MimeMessage(сессия);            // Устанавливаем атрибуты сообщения            сообщение.setFrom(новый Интернет-адрес(из));            Интернет-адрес[] адрес = {новый Интернет-адрес(к)};            сообщение.setRecipients(Сообщение.RecipientType.К, адрес);            // Разбираем список адресов электронной почты, разделенных запятыми. Будьте строги.            сообщение.setRecipients(Сообщение.RecipientType.CC,                                Интернет-адрес.разбирать(к, истинный));            // Разбираем список, разделенный запятыми / пробелами. Немного расслабиться.            сообщение.setRecipients(Сообщение.RecipientType.BCC,                                Интернет-адрес.разбирать(к, ложный));            сообщение.setSubject(«Проверить электронную почту через Java»);            сообщение.setSentDate(новый Дата());            // Устанавливаем содержимое сообщения и отправляем            setTextContent(сообщение);            сообщение.Сохранить изменения();            автобус.Отправить сообщение(сообщение, адрес);            setMultipartContent(сообщение);            сообщение.Сохранить изменения();            автобус.Отправить сообщение(сообщение, адрес);            setFileAsAttachment(сообщение, "C: /WINDOWS/CLOUD.GIF");            сообщение.Сохранить изменения();            автобус.Отправить сообщение(сообщение, адрес);            setHTMLContent(сообщение);            сообщение.Сохранить изменения();            автобус.Отправить сообщение(сообщение, адрес);            автобус.Закрыть();        }        ловить (MessagingException Мексика) {            // Также выводит все вложенные (связанные) исключения            Мексика.printStackTrace();            // Как получить доступ к вложенным исключениям            пока (Мексика.getNextException() != ноль) {                // Получить следующее исключение в цепочке                Исключение бывший = Мексика.getNextException();                бывший.printStackTrace();                если (!(бывший экземпляр MessagingException)) перемена;                еще Мекс = (MessagingException)бывший;            }        }    }    // Простой, состоящий из одной части текст / обычное электронное письмо.    общественный статический пустота setTextContent(Сообщение сообщение) бросает MessagingException {            // Устанавливаем содержимое сообщения            Нить mytxt = "Это проверка отправки" +                            "текстовая электронная почта через Java.  n" +                            «Вот строка 2.»;            сообщение.setText(mytxt);            // Альтернативная форма            сообщение.setContent(mytxt, "текст / обычный");    }    // Простое составное / смешанное электронное письмо. Обе части тела текстовые / простые.    общественный статический пустота setMultipartContent(Сообщение сообщение) бросает MessagingException {        // Создаем и заполняем первую часть        MimeBodyPart p1 = новый MimeBodyPart();        p1.setText(«Это первая часть тестового письма, состоящего из нескольких частей».);        // Создаем и заполняем вторую часть        MimeBodyPart p2 = новый MimeBodyPart();        // Вот как установить кодировку для текстового контента        p2.setText(«Это вторая часть», "us-ascii");        // Создаем Multipart. Добавьте к нему BodyParts.        Составной mp = новый MimeMultipart();        mp.addBodyPart(p1);        mp.addBodyPart(p2);        // Установить Multipart в качестве содержимого сообщения        сообщение.setContent(mp);    }    // Установить файл как вложение. Использует JAF FileDataSource.    общественный статический пустота setFileAsAttachment(Сообщение сообщение, Нить имя файла)             бросает MessagingException {        // Создаем и заполняем первую часть        MimeBodyPart p1 = новый MimeBodyPart();        p1.setText(«Это первая часть тестового письма, состоящего из нескольких частей». +                    «Вторая часть - файл как вложение»);        // Создаем вторую часть        MimeBodyPart p2 = новый MimeBodyPart();        // Помещаем файл во вторую часть        FileDataSource fds = новый FileDataSource(имя файла);        p2.setDataHandler(новый DataHandler(fds));        p2.setFileName(fds.getName());        // Создаем Multipart. Добавьте к нему BodyParts.        Составной mp = новый MimeMultipart();        mp.addBodyPart(p1);        mp.addBodyPart(p2);        // Установить Multipart в качестве содержимого сообщения        сообщение.setContent(mp);    }    // Устанавливаем HTML-содержимое одной части.    // Отправка данных любого типа аналогична.    общественный статический пустота setHTMLContent(Сообщение сообщение) бросает MessagingException {        Нить html = "  "</span> <span class="o">+</span>                        <span class="n">сообщение</span><span class="p">.</span><span class="na">getSubject</span><span class="p">()</span> <span class="o">+</span>                        <span class="s">"  

" + сообщение.getSubject() + "

Это тест отправки электронного письма в формате HTML" + "через Java. "; // HTMLDataSource - статический вложенный класс сообщение.setDataHandler(новый DataHandler(новый HTMLDataSource(html))); } /* * Статический вложенный класс для работы в качестве источника данных JAF для отправки содержимого электронной почты в формате HTML. */ статический учебный класс HTMLDataSource орудия Источник данных { частный Нить html; общественный HTMLDataSource(Нить htmlString) { html = htmlString; } // Возвращаем строку html в InputStream. // Каждый раз должен возвращаться новый поток. общественный InputStream getInputStream() бросает IOException { если (html == ноль) бросать новый IOException(«Нулевой HTML»); возвращаться новый ByteArrayInputStream(html.getBytes()); } общественный OutputStream getOutputStream() бросает IOException { бросать новый IOException(«Этот DataHandler не может писать HTML»); } общественный Нить getContentType() { возвращаться "текст / HTML"; } общественный Нить getName() { возвращаться "Источник данных JAF / html только для отправки электронной почты"; } }} // Конец занятия

Рекомендации

  1. ^ «Включение JavaEE». Получено 12 ноя 2014.
  2. ^ ""Новости"". Получено 13 мая 2020.
  3. ^ "Jakarta Mail". Получено 3 сен 2019.

внешняя ссылка