Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - JavaMail07 мая 2011это Java API предназначенное для получения и отправки электронной почты с использованием протоколов SMTP, POP3 и IMAP. JavaMail является частью платформы Java EE, но так же доступен в качестве дополнительного пакета для использования в Java SE приложениях. На данный момент актуальной версией является JavaMail 1.4.3, релиз которой состоялся 20 ноября 2009 года. Существует так же альтернативная реализация JavaMail с открытым исходным кодом GNU JavaMail которая реализует только спецификацию JavaMail версии 1.3, предоставляя возможность работы только протоколом NNTP, что позволяет читать и отсылать статьи в новостных группах. Примеры использованияimport java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; // Отправка простого сообщения с типом контента "text/plain" public class TestEmail { public static void main { // Сюда необходимо подставить адрес получателя сообщения String to = "sendToMailAddress"; String from = "sendFromMailAddress"; // Сюда необходимо подставить SMTP сервер, используемый для отправки String host = "smtp.yourisp.net"; // Создание свойств, получение сессии Properties props = new Properties; // При использовании статического метода Transport.send // необходимо указать через какой хост будет передано сообщение props.put; // Включение debug-режима props.put; Session session = Session.getInstance; try { // Создание объекта сообщения Message msg = new MimeMessage; // Установка атрибутов сообщения msg.setFrom); InternetAddress address = {new InternetAddress}; msg.setRecipients; msg.setSubject; msg.setSentDate); // Установка тела сообщения msg.setText("This is a test of sending a " + "plain text e-mail through Java.\n" + "Here is line 2."); // Отправка сообщения Transport.send; } catch { // Печать информации об исключении в случае его возникновения mex.printStackTrace; } } } Пример отправки составного сообщения с файловыми вложениями import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendMailUsage { public static void main { // Сюда необходимо подставить адрес получателя сообщения String to = "sendToMailAddress"; String from = "sendFromMailAddress"; // Сюда необходимо подставить SMTP сервер, используемый для отправки String host = "smtpserver.yourisp.net"; // Создание свойств, получение сессии Properties props = new Properties; // При использовании статического метода Transport.send // необходимо указать через какой хост будет передано сообщение props.put; // Включение debug-режима props.put; // Получение сессии Session session = Session.getInstance; try { // Получение объекта транспорта для передачи электронного сообщения Transport bus = session.getTransport; // Устанавливаем соединение один раз // Метод Transport.send отсоединяется после каждой отправки bus.connect; // Обычно для SMTP сервера необходимо указать логин и пароль bus.connect; // Создание объекта сообщения Message msg = new MimeMessage; // Установка атрибутов сообщения msg.setFrom); InternetAddress address = {new InternetAddress}; msg.setRecipients; // Парсинг списка адресов разделённых пробелами. Строгий синтаксис msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse); // Парсинг списка адресов разделённых пробелами. Более мягкий синтаксис. msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse); msg.setSubject; msg.setSentDate); // Установка контента сообщения и отправка setTextContent; msg.saveChanges; bus.sendMessage; setMultipartContent; msg.saveChanges; bus.sendMessage; setFileAsAttachment; msg.saveChanges; bus.sendMessage; setHTMLContent; msg.saveChanges; bus.sendMessage; bus.close; } catch { // Печать информации обо всех возможных возникших исключениях mex.printStackTrace; // Получение вложенного исключения while != null) { // Получение следующего исключения в цепочке Exception ex = mex.getNextException; ex.printStackTrace; if ) break; else mex = ex; } } } // Сообщение, состоящее из одной части с типом контента text/plain. public static void setTextContent throws MessagingException { // Установка типа контента String mytxt = "This is a test of sending a " + "plain text e-mail through Java.\n" + "Here is line 2."; msg.setText; // Альтернативный способ msg.setContent; } // Сообщение с типом контента multipart/mixed. Обе части имеют тип контента text/plain. public static void setMultipartContent throws MessagingException { // Создание и заполнение первой части MimeBodyPart p1 = new MimeBodyPart; p1.setText; // Создание и заполнение второй части MimeBodyPart p2 = new MimeBodyPart; // Here is how to set a charset on textual content p2.setText; // Создание экземпляра класса Multipart. Добавление частей сообщения в него. Multipart mp = new MimeMultipart; mp.addBodyPart; mp.addBodyPart; // Установка объекта класса Multipart в качестве контента сообщения msg.setContent; } // Прикрепление файла в качестве вложения. Используется JAF FileDataSource. public static void setFileAsAttachment throws MessagingException { // Создание и заполнение первой части MimeBodyPart p1 = new MimeBodyPart; p1.setText("This is part one of a test multipart e-mail." + "The second part is file as an attachment"); // Создание второй части MimeBodyPart p2 = new MimeBodyPart; // Добавление файла во вторую часть FileDataSource fds = new FileDataSource; p2.setDataHandler); p2.setFileName); // Создание экземпляра класса Multipart. Добавление частей сообщения в него. Multipart mp = new MimeMultipart; mp.addBodyPart; mp.addBodyPart; // Установка экземпляра класса Multipart в качестве контента документа msg.setContent; } // Добавление в первую часть html-контента. // Оптправка данных любого другого типа производится аналогичным образом. public static void setHTMLContent throws MessagingException { String html = "<html><head><title>" + msg.getSubject + "</title></head><body><h1>" + msg.getSubject + "</h1><p>This is a test of sending an HTML e-mail" + " through Java.</body></html>"; // HTMLDataSource является внутренним классом msg.setDataHandler)); } /* * Внутренний класс работает аналогично JAF datasource и добавляет HTML в контент сообщения */ static class HTMLDataSource implements DataSource { private String html; public HTMLDataSource { html = htmlString; } // Возвращаем html строку в InputStream. // Каждый раз возвращается новый поток public InputStream getInputStream throws IOException { if throw new IOException; return new ByteArrayInputStream); } public OutputStream getOutputStream throws IOException { throw new IOException; } public String getContentType { return "text/html"; } public String getName { return "JAF text/html dataSource to send e-mail only"; } } } Просмотров: 1758
|