InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Посылка почты из Java


Developers.com.ua


Хочу привести один класс который посылает html-почту. На сегодняшний день существует два подхода к посылке почты:

  • "Правильный". - Установка tcp/ip соединения с smtp сервером... в общем это работа через JavaMail
  • "Неправильный" - запустить sendmail (дальше как мы делаем это в perl'е)

У первого способа огромное преимущество - платформо-независимость, однако есть минус - усложняется конфигурирование и скорость отсылки.

Второй способ: недостаток - у какого уважающего себя Windwos есть /usr/sbin/sendmail ? :) С другой стороны, какой уважающий себя Java-девелопер ориентируется на Win32 платформу? :) Однако преимущества огромны - sendmail настолько "умная" программа... - нам совершенно не надо заботиться о том чтобы smtp сервер работал, не надо тратить время на установление tcp/ip соединения с этим сервером...

В общем далее я привожу пример класса который реализует второй подход (на его основе сейчас работает самопальный автоответчик в одном из чатов - он сообщения адрессованные мне в приват посылает через email-sms гейт мне на мобильный :-)). На последок хочу напомнить: "Товарищи, будьте бдительны и посылайте почту в КОИ-8 - это СТАНДАРТ для нашей кодировки."

import java.io.*;

/**
 * Object wich allow sending html mail. Need sendmail (this object
 * is ported some my perl scripts).
 * @author General
 */
public class SendMail
{
  private String from,to,msgbody,subj;
    
  public SendMail()                { from="";to="";msgbody="";subj="";}
  public void setFrom(String From) { from=From; }
  public void setTo(String To)     { to=To; }
  public void setSubj(String Subj) { subj=Subj;}
  public void setMessageBody(String MessageBody) { msgbody=MessageBody;}

  public void send()
  { String cmd="";
    String param="";
    
    cmd="/usr/sbin/sendmail -t -oi";
    param=param+"From: "+from+"\n";
    param=param+"To: "+to+"\n";
    param=param+"Subject: "+subj+"\n";
    param=param+"Content-Type: text/html; charset=koi8-r\n\n";
    param=param+msgbody+"\n";
    try{ Process p=Runtime.getRuntime().exec(cmd);
         OutputStream o=p.getOutputStream();
         o.write(param.getBytes("koi8"));
         o.flush();
         o.close();
      } catch(Exception e)
      { System.out.println(""+e);
      }
  }
}


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua