Hızlı Konu Açma

Hızlı Konu Açmak için tıklayınız.

Son Mesajlar

Konulardaki Son Mesajlar

Reklam

Forumda Reklam Vermek İçin Bize Ulaşın

Java – Mail Gönderme

YaSa22

Fahri Üye
Fahri Üye
Katılım
12 Temmuz 2014
Mesajlar
2,293
Tepkime puanı
2
Puanları
0
Konum
GTA
Bu makalemizde Java ile mail gönderme işlemini inceleyeceğiz.

Java'da mail göndermek uygulamasindan önce mail gönderme isleminin nasil çalistigi konusuna biraz deyinelim.

Mail gönderebilmek için bir sunucuda iki adet protokol vardir: Mail Gönderme Protokolü, Mail Alma Protokolü.

Mail Alma Protokolü

Bir e-posta sunucusundaki mailleri alabilmek için kullanilan protokoldür. POP3 ya da IMAP bu protokollerin basindadir.

POP3 (Post Office Protocol 3)

SMTP olarak adlandirdigimiz protokollerle gönderdigimiz mailler eger kisiye ulasmamissa, otomatik olarak farkli yollar denenir. Farkli yollarla yine ulasmiyorsa bize bir hata mesaji gönderir. Fakat POP3 servisini bir posta kutusu gibi düsünebiliriz. Bir e-posta geldiginde sunucu içerisinde gelen posta kutusuna kaydedilir, kullanici istediginde POP3 servisi ile istedigi yazilimi kullanarak bu postalari alabilmektedir.

IMAP (Internet Mail Access Protocol)

POP3 gibi, sunucuda kayitli olan e-postalara ulasabilmek için kullanilan bir protokoldür. POP3'ten farki, birden çok bilgisayardan bir mesaja ulasilabilmesidir. POP'da bir e-postaya tek bir bilgisayardan erisim saglanabilmektedir.

Mail Gönderme Protokolü

SMTP (Simple Mail Tranfer Protocol)

E-Posta göndermek için sunucu ve istemci arasindaki iliskiyi kuran protokoldür. E-Posta gönderme islemini bir örnekle inceleyelim:
Benim mail adresim: veysel@ugurkizmaz.com . Mail gönderme protokolü olarak POP3'ü kullaniyorum. Yani benim web sitemin bulundugu sunucumda POP3 protokolüyle mail gönderen bir mail sunucusu da yer almaktadir. vkizmaz@zirvedekibeyinler.net mail adresine mail gönderdigim zaman mail öncelikle POP3 protokolü ile mail sunucuma gelir, oraya kaydedilir, sunucu maili gönderilecek kisiye iletir.

Java'ta e-posta gönderme islemini inceleyelim:

Mail gönderme işlemi için

Linkleri sadece kayıtlı üyeler görebilir. Linkleri görebilmek için Üye Girişi yapın veya ücretsiz olarak Kayıt Olun

mail.jar dosyasını indirelim.


Mail gönderme işlemi için öncelikle Javax.Mail.Authenticator sınıfından türeyen bir sınıf oluşturuyoruz. Bu sınıf sayesinde kullanıcı adı ve şifre bilgilerimizi belirliyoruz.



  • public class KullaniciBilgi extends javax.mail.Authenticator {
  • public PasswordAuthentication getPasswordAuthentication() {
  • String username = "veysel@deneme.com";
  • String password = "sifre";
  • return new PasswordAuthentication(username, password);
  • }
  • }




Mail islemlerini yapabilmek için öncelikle import bölümüne asagidaki namespace’leri ekleyelim:




  • import javax.mail.*;
  • import javax.mail.internet.*;
  • import java.util.*;




Mail göndermek için kullanacağımız sunucu özelliklerini belirliyoruz.



  • Properties ozellik = new Properties();




Mail göndermek için SMTP protokolünü kullanacağız.





  • ozellik.put("mail.transport.protocol", "smtp");





Maili göndereceğimiz sunucu adresi


  • ozellik.put("mail.smtp.host", "mail.deneme.com");




Sunucu mail gönderirken şifre istiyor mu?



  • ozellik.put("mail.smtp.auth", "true");




Maili göndereceğimiz port



  • ozellik.put("mail.smtp.port","587");




Kullanıcı bilgilerini tanımlıyoruz



  • KullaniciBilgi kullaniciBilgi = new KullaniciBilgi();




Mail göndermek için bir session oluşturuyoruz.



  • Session mailSession = Session.getDefaultInstance(ozellik, kullaniciBilgi);




Mail gönderme işlemini gerçekleştirecek nesnemizi oluşturuyoruz.




  • Transport transport = mailSession.getTransport();




Mail değişkenimizi oluşturuyoryuz. Burada tüm mail bilgleri yer almaktadır.



  • MimeMessage mail = new MimeMessage(mailSession);




Mailin başlığı



  • mail.setContent("Metin", "text/plain");




Mail kimden gönderiliyor



  • mail.setFrom(new InternetAddress("veysel@deneme.com"));




Mail kime gönderiliyor



  • mail.addRecipient(Message.RecipientType.TO, new InternetAddress("ugur@deneme.com"));




Sunucuyla bağlantı kuruluyor



  • transport.connect();




Mail gönderiliyor



  • transport.sendMessage(mail, mail.getRecipients(Message.RecipientType.TO));




Sunucuyla bağlantı kesiliyor.



  • transport.close();




Asagidaki uygulama, Java dili kullanilarak mail gönderme islemini gerçeklestiren fonksiyondur:




  • private static void Gonder(){
  • Properties ozellik = new Properties();
  • ozellik.put("mail.transport.protocol", "smtp");
  • ozellik.put("mail.smtp.host", "mail.deneme.com");
  • ozellik.put("mail.smtp.auth", "true");
  • ozellik.put("mail.smtp.port","587");
  • KullaniciBilgi kullaniciBilgi = new KullaniciBilgi();
  • Session mailSession = Session.getDefaultInstance(ozellik, kullaniciBilgi);
  • try{
  • Transport transport = mailSession.getTransport();
  • MimeMessage mail = new MimeMessage(mailSession);
  • mail.setContent("Metin", "text/plain");
  • mail.setFrom(new InternetAddress("veysel@deneme.com"));
  • mail.addRecipient(Message.RecipientType.TO, new InternetAddress("ugur@deneme.com"));
  • transport.connect();
  • transport.sendMessage(mail, mail.getRecipients(Message.RecipientType.TO));
  • transport.close();
  • System.out.println("Başarılı");
  • }
  • catch(Exception hata){
  • System.out.println(hata.getMessage());
  • }
  • }
 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst