• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 8/2/2020 11:38:31 PM'Basit' Yazılım Dili
  • 6/25/2020 3:18:13 PMderleme hatası
  • 12/11/2017 4:49:15 PMWindows Hizmeti Hk.
  • 4/23/2016 12:55:33 AMC programlama 2 oyun

Popüler Sorular

  • 5/27/2012 5:49:50 AMAsp.Net ile Date time alana veri ekleyemiiyorum ?
  • 4/2/2012 12:45:18 AM.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 5/12/2012 8:44:49 AMAcil Yardım
  • 5/27/2012 1:46:51 PMveri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LibreOffice
  • LINQ
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Java Mail Gönderme

Java ile mail gönderme işlemini inceleyelim.

02.05.2012

Yazar: Veysel Uğur KIZMAZ (Google+)

Kategori: Java

4252
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 bu linkten 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.
 
  1. public class KullaniciBilgi extends javax.mail.Authenticator {
  2.     public PasswordAuthentication getPasswordAuthentication() {
  3.        String username = "veysel@deneme.com";
  4.        String password = "sifre";
  5.        return new PasswordAuthentication(username, password);
  6.     }
  7. }
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:
 
 
  1. import javax.mail.*;
  2. import javax.mail.internet.*;
  3. import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
Mail göndermek için kullanacağımız sunucu özelliklerini belirliyoruz.
 
  1. Properties ozellik = new Properties();
Properties ozellik = new Properties();
Mail göndermek için SMTP protokolünü kullanacağız.
 
 
  1. ozellik.put("mail.transport.protocol", "smtp");
ozellik.put("mail.transport.protocol", "smtp");
 
Maili göndereceğimiz sunucu adresi
  1. ozellik.put("mail.smtp.host", "mail.deneme.com");
ozellik.put("mail.smtp.host", "mail.deneme.com");
Sunucu mail gönderirken şifre istiyor mu?
 
  1. ozellik.put("mail.smtp.auth", "true");
ozellik.put("mail.smtp.auth", "true");
Maili göndereceğimiz port
 
  1. ozellik.put("mail.smtp.port","587");
ozellik.put("mail.smtp.port","587");
Kullanıcı bilgilerini tanımlıyoruz
 
  1. KullaniciBilgi kullaniciBilgi = new KullaniciBilgi();
KullaniciBilgi kullaniciBilgi = new KullaniciBilgi();
Mail göndermek için bir session oluşturuyoruz.
 
  1. Session mailSession = Session.getDefaultInstance(ozellik, kullaniciBilgi);
Session mailSession = Session.getDefaultInstance(ozellik, kullaniciBilgi);
Mail gönderme işlemini gerçekleştirecek nesnemizi oluşturuyoruz.
 
 
  1. Transport transport = mailSession.getTransport();
Transport transport = mailSession.getTransport();
Mail değişkenimizi oluşturuyoryuz. Burada tüm mail bilgleri yer almaktadır.                
 
  1. MimeMessage mail = new MimeMessage(mailSession);
MimeMessage mail = new MimeMessage(mailSession);
Mailin başlığı
 
  1. mail.setContent("Metin", "text/plain");
mail.setContent("Metin", "text/plain");
Mail kimden gönderiliyor
 
  1. mail.setFrom(new InternetAddress("veysel@deneme.com"));
mail.setFrom(new InternetAddress("veysel@deneme.com"));
Mail kime gönderiliyor
 
  1. mail.addRecipient(Message.RecipientType.TO, new InternetAddress("ugur@deneme.com"));
mail.addRecipient(Message.RecipientType.TO, new InternetAddress("ugur@deneme.com"));
Sunucuyla bağlantı kuruluyor
 
  1. transport.connect();
transport.connect();
Mail gönderiliyor
 
  1. transport.sendMessage(mail, mail.getRecipients(Message.RecipientType.TO));
transport.sendMessage(mail, mail.getRecipients(Message.RecipientType.TO));
Sunucuyla bağlantı kesiliyor.
 
  1. transport.close();
transport.close();
Asagidaki uygulama, Java dili kullanilarak mail gönderme islemini gerçeklestiren fonksiyondur:
 
 
  1. private static void Gonder(){
  2.         Properties ozellik = new Properties();
  3.         ozellik.put("mail.transport.protocol", "smtp");
  4.         ozellik.put("mail.smtp.host", "mail.deneme.com");
  5.         ozellik.put("mail.smtp.auth", "true");
  6.         ozellik.put("mail.smtp.port","587");
  7.         KullaniciBilgi kullaniciBilgi = new KullaniciBilgi();
  8.         Session mailSession = Session.getDefaultInstance(ozellik, kullaniciBilgi);
  9.         try{
  10.             Transport transport = mailSession.getTransport();
  11.             
  12.             MimeMessage mail = new MimeMessage(mailSession);
  13.             mail.setContent("Metin", "text/plain");
  14.             mail.setFrom(new InternetAddress("veysel@deneme.com"));
  15.             mail.addRecipient(Message.RecipientType.TO, new InternetAddress("ugur@deneme.com"));
  16.             transport.connect();
  17.             transport.sendMessage(mail, mail.getRecipients(Message.RecipientType.TO));
  18.             transport.close();
  19.             System.out.println("Başarılı");
  20.         }
  21.         catch(Exception hata){
  22.             System.out.println(hata.getMessage());
  23.         }
  24.     }
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());
		}
	}
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com

 

Yazar Hakkında

Veysel Uğur  KIZMAZ

Veysel Uğur KIZMAZ

www.ugurkizmaz.com

YazılımDilleri.Net projesinin lideri olan Veysel Uğur Kızmaz, Gazi Üniversitesi Bilgisayar Mühendisliği bölümü mezunudur. Bir çok projede çalışmış, yazılım alanında birçok eğitimler vermiştir. Şu an özel bir yazılım danışmanlık firmasında Sharepoint proje danışmanlığı ve proje yöneticiliği yapmaktadır. Veysel Uğur Kızmaz, dahil olduğu projelerin çeşitliliği sebebiyle farklı alanlarda uzmanlaşmıştır: .Net, Sharepoint, Java, Php, Javascript, SQL Server, Oracle, MySQL.

Sosyal Medya

ORANLAR

  • 4252izleme

Arkadaşlarınla Paylaş

  • Tweet

1 Yorum

true true

true true

12.12.2011

tam aradığım şeydi, süper.

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 123823
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 70897
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51538
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ