div.main {margin-left: 20pt; margin-right: 20pt}
Посылка почты из 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-rnn";
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);
}
}
}
|