Почта Джакарты - Jakarta Mail - Wikipedia
Почта Джакарты (ранее 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 = " " + сообщение.getSubject() + " "
+ сообщение.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 только для отправки электронной почты"; } }} // Конец занятия
Рекомендации
- ^ «Включение JavaEE». Получено 12 ноя 2014.
- ^ ""Новости"". Получено 13 мая 2020.
- ^ "Jakarta Mail". Получено 3 сен 2019.