Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Пример работы с SMTP сервером

Поиск:
Код

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;

public class EmailMIDlet extends MIDlet implements CommandListener {
   Display display = null;

   // email form fields     
   TextField toField = null;
   TextField subjectField = null;
   TextField msgField = null;
   Form form;

   static final Command sendCommand = new Command("send", Command.OK, 2);
   static final Command clearCommand = new Command("clear", Command.STOP, 3); 
   String to;
   String subject;
   String msg;

   public EmailMIDlet() {
      display = Display.getDisplay(this);
      form = new Form("Compose Message");
      toField = new TextField("To:", "", 25, TextField.EMAILADDR);
      subjectField = new TextField("Subject:", "", 15, TextField.ANY);
      msgField = new TextField("MsgBody:", "", 90, TextField.ANY);
   }

   public void startApp() throws MIDletStateChangeException {
      form.append(toField);
      form.append(subjectField);
      form.append(msgField);
      form.addCommand(clearCommand);
      form.addCommand(sendCommand);
      form.setCommandListener(this);
      display.setCurrent(form);
   }

   public void pauseApp() {
   }

   public void destroyApp(boolean unconditional) {
      notifyDestroyed();
   }

   public void commandAction(Command c, Displayable d) {
      String label = c.getLabel();
      if(label.equals("clear")) {
         destroyApp(true);
      } else if (label.equals("send")) {
         to = toField.getString();
         subject = subjectField.getString();
         msg = msgField.getString();
         EmailClient client = new EmailClient
            (this,"qmahmoud@javacourses.com", to, subject, msg);
         client.start();
      } 
   }
}





Код


import javax.microedition.midlet.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import java.io.*;
import java.util.*;

public class EmailClient implements Runnable {
   private EmailMIDlet parent;
   private Display display;
   private Form f;
   private StringItem si;
   private SocketConnection sc;
   private InputStream is;
   private OutputStream os;
   private String smtpServerAddress;

   private String from, to, subject, msg;

   public EmailClient
      (EmailMIDlet m, String from, String to, String subject, String msg) {
      parent = m;
      this.from = from;
      this.to = to;
      this.subject = subject;
      this.msg = msg;

      display = Display.getDisplay(parent);
      f = new Form("Email Client");
      si = new StringItem("Response:" , " ");
      f.append(si);
      display.setCurrent(f);
   }

   public void start() {
      Thread t = new Thread(this);
      t.start();
   }

   public void run() {
 
      try {
         sc = (SocketConnection)
            Connector.open("socket://"+smtpServerAddress+":25");
         is = sc.openInputStream();
         os = sc.openOutputStream();

         os.write(("HELO there" + "\r\n").getBytes()); 
         os.write(("MAIL FROM: "+ from +"\r\n").getBytes());
         os.write(("RCPT TO: "+ to + "\r\n").getBytes());
         os.write("DATA\r\n".getBytes());
         // stamp the msg with date
         os.write(("Date: " + new Date() + "\r\n").getBytes()); 
         os.write(("From: "+from+"\r\n").getBytes());
         os.write(("To: "+to+"\r\n").getBytes());
         os.write(("Subject: "+subject+"\r\n").getBytes());
         os.write((msg+"\r\n").getBytes()); // message body
         os.write(".\r\n".getBytes());
         os.write("QUIT\r\n".getBytes());

         // debug
         StringBuffer sb = new StringBuffer();
         int c = 0;
         while (((c = is.read()) != -1) ) {
            sb.append((char) c);
         }
         si.setText("SMTP server response - " + sb.toString());      

      } catch(IOException e) {

         Alert a = new Alert
            ("TimeClient", "Cannot connect to SMTP server. Ping the server
              to make sure it is running...", null, AlertType.ERROR);
         a.setTimeout(Alert.FOREVER);
         display.setCurrent(a); 
      } finally {
         try {
            if(is != null) {
               is.close();
            }
            if(os != null) {
               os.close();
            }
            if(sc != null) {
               sc.close();
            }
         } catch(IOException e) {
            e.printStackTrace();
         }
      }    
   } 

   public void commandAction(Command c, Displayable s) {
      if (c == Alert.DISMISS_COMMAND) {
         parent.notifyDestroyed();
         parent.destroyApp(true);
      }
   }
}





Автор: javastic
Сайт: http://www.vitalich.com






Просмотров: 6431

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную