Russian version
English version
ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ
 
Программное обеспечение
 
Для зарегистрированных пользователей
 
РАССЫЛКИ НОВОСТЕЙ
IT-Новости
Новости компаний
Российские технологии
Новости ВПК
Нанотехнологии
 
Поиск по статьям
 
RSS-лента
Подписаться
Документация

Посылка электронной почты из приложения

Вы, возможно, помните, что протокол SMTP (протокол для связи с почтовым сервером) - это один из протоколов, использующий TCP/IP. SMTP-сервер ждёт клиентов, чтобы послать им в случае необходимости электронную почту. Для написания простейшего SMTP-клиента необходимо понимать протокол SMTP. В Таблице продемонстрированы действия, которые необходимо выполнить, чтобы послать сообщение на SMTP-сервер:

Протокол Описание
HELO localhost.domain.name Инициализация связи с SMTP-сервером
MAIL FROM: user@emailadress.com Указание, кто посылает электронную почту
RCPT TO: user@emailadress.com Указание, кто получает электронную почту
DATA Указание, что далее следуют данные электронной почты
(ваше e-mail-сообщение) Данные электронной почты (любое число строк)
. Точка определяет конец электронной почты
QUIT Соединение разрывается

Сначала необходимо сообщить SMTP-серверу, кто вы такой. Затем необходимо сообщить SMTP-серверу, кто посылает электронную почту. Наконец посылается ключевое слово DATA, чтобы указать, что далее следуют данные электронной почты. После этого посылается тело электронной почты, разделённое точками.

Следующая программа, JavaMailTest.java, демонстрирует, как послать электронную почту из приложения, написанного на Java:

 
import java.io.*;
import java.net.*;

public class JavaMailTest {

static PrintStream ps = null; // посылка сообщений static DataInputStream dis = null; // получение сообщений

public static void send(String str) throws IOException { ps.println(str); // посылка строки на SMTP ps.flush(); // очистка буфера System.out.println("Java sent: " + str); }

public static void receive() throws IOException { String readstr = dis.readLine(); // получение ответа от SMTP System.out.println("SMTP respons: " + readstr); }

public static void main (String args[]) { String HELO = "HELO "; String MAIL_FROM = "MAIL FROM: user@emailadress.com "; String RCPT_TO = "RCPT TO: user@emailadress.com "; String SUBJECT = "SUBJECT: Java is cool!"; String DATA = "DATA"; // начало сообщения

// заметка: "\r\n.\r\n" указывает на конец сообщения String BODY = "Java sent this!\r\n.\r\n";

Socket smtp = null; // сокет SMTP

try { // заметка: 25 - это стандартный номер порта SMTP smtp = new Socket("smtp.any.com", 25); OutputStream os = smtp.getOutputStream(); ps = new PrintStream(os); InputStream is = smtp.getInputStream(); dis = new DataInputStream(is); } catch (IOException) { System.out.println("Error connection: " + e); }

try { // скажем SMTP helo String loc = InetAddress.getLocalHost().getHostName(); send(HELO + loc); receive(); // получение ответа SMTP send(MAIL_FROM); // посылка на SMTP receive(); // получение ответа SMTP send(RCPT_TO); // посылка адресату SMTP receive(); // получение ответа SMTP send(DATA); // начинается посылка на SMTP receive(); // получение ответа SMTP send(SUBJECT); // посылка темы на SMTP receive(); // получение ответа SMTP send(BODY); // посылка тела сообщения receive(); // получение ответа SMTP smtp.close(); // } catch (IOException) { System.out.println("Error sending: " + e); }

System.out.println("Mail sent!"); } }

Обратите внимание, что порция данных сообщения электронной почты состоит из двух разделов: заголовка и тела. В заголовке можно определить дополнительную информацию о сообщении. Для запуска вышеприведённого кода следует изменить название домена, а так же адреса получателя и отправителя. Можно, например, послать электронную почту самому себе.


  Рекомендовать страницу   Обсудить материал Написать редактору  
  Распечатать страницу
 
  Дата публикации: 20.02.2006  

ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ

Дизайн и поддержка: Silicon Taiga   Обратиться по техническим вопросам  
Rambler's Top100 Rambler's Top100