Posted by Mustafa Sait Özen in , , , ,


SEAM ile E-Posta Gönderme

Seam kullanarak çok rahatlıkla e-posta gönderebilirsiniz. Bunun için farklı bir kütüphane kullanmanıza gerek yok. Yapılacak işlemler sırasıyla aşağıda anlatıldığım gibidir.







Öncelikle components.xml dosyasına



<mail:mail-session host="SMTP_Sunucu_IP_Adresi_veya_DNS_Adresi"
port="25" username="kullaniciadi"
password="sifreniz"></mail:mail-session>


satırını eklenemiz veya dosyada varolan satırı bu şekilde düzenlemelisiniz.
E-posta alıcıları bir listede olacağından onların tutulacağı sınıf olan EPostaKullanicisi sınıfını oluşturalım.



package sato.services.email;

public class EPostaKullanicisi {

String isim;
String epostaAdresi;

public EPostaKullanicisi(String isim, String epostaAdresi) {
setIsim(isim);
setEpostaAdresi(epostaAdresi);
}

public String getIsim() {
return isim;
}

public void setIsim(String isim) {
this.isim = isim;
}

public String getEpostaAdresi() {
return epostaAdresi;
}

public void setEpostaAdresi(String epostaAdresi) {
this.epostaAdresi = epostaAdresi;
}

}






E-Posta göndermek için servis sınıfı yazalım.






package sato.services.email;


import java.util.List;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.faces.Renderer;
import org.jboss.seam.log.Log;
import org.jboss.seam.annotations.In;

@Name("epostaServis")
@AutoCreate
public class EPostaServis {


@Logger
private Log log;

private List ePostaKullanicilari;
private String konu;
private String icerik;


@In(create = true)
private Renderer renderer;


public void kullanicilaraEPostaGonder(String konu,String icerik) {
try {
setKonu(konu);
setIcerik(icerik);
renderer.render("/eposta/kullanicilaraEPostaGonder.xhtml");
log.info("E-Postalar gonderilmistir.");
}
catch (Exception e) {
log.error(e.getMessage());
}
}

public List getEPostaKullanicilari() {
//E-Posta gönderilecek kişiler burada ayarlanır.
return ePostaKullanicilari;
}


public void setEPostaKullanicilari(List postaKullanicilari) {
ePostaKullanicilari = postaKullanicilari;
}

public String getKonu() {
return konu;
}

public void setKonu(String konu) {
this.konu = konu;
}

public String getIcerik() {
return icerik;
}


public void setIcerik(String icerik) {
this.icerik = icerik;
}


}




E-Posta göndereceğimiz facelet olan kullanicilaraEPostaGonder.xhtml dosyasını düzenleyelim.






<m:message xmlns="http://www.w3.org/1999/xhtml"
xmlns:m="http://jboss.com/products/seam/mail"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">

<m:from name="gonderenKisininIsmi" address="gonderici@mailSunucuDNS" />

<ui:repeat value="#{epostaServis.getEPostaKullanicilari()}"
var="kullanici">`

<m:to name="#{kullanici.isim}"
address="#{kullanici.epostaAdresi}" />

</ui:repeat>

<m:subject>
<h:outputText value="#{epostaServis.getKonu()}" />
</m:subject>

<m:body>
<p><h:outputText value="Sayin Kullanici" />,</p>

<p><h:outputText value="#{epostaServis.getIcerik()}" /></p>

<p>iyi günler dileriz</p>
</m:body>
</m:message>





Servisi bir yerlerden çağırmak için gereken kodu yazalım.




@In(create = true)
private EPostaServis ePostaServis;

public void biseyOlursaCalisirim(){
// Bir sürü değişken, kontrol vb....
ePostaServis.kullanicilaraEPostaGonder(EPostanınKonusu, Icerik);
}






Seam ile e-posta göndermek bu kadar kolay :)))

This entry was posted on Cuma, Haziran 05, 2009 at Cuma, Haziran 05, 2009 and is filed under , , , , . You can follow any responses to this entry through the comments feed .

0 yorum

Yorum Gönder