logo

Java'da E-posta Gönderme

  1. JavaMail API'sini kullanarak E-posta Gönderme
  2. JavaMail API'yi kullanarak e-posta gönderme adımları
    1. Oturum nesnesini alın
    2. Mesajı oluştur
    3. mesajı gönder
  3. JavaMail API kullanarak e-posta göndermenin basit örneği
  4. Ana makine sağlayıcısı tarafından sağlanan SMTP sunucusu aracılığıyla JavaMail API'yi kullanarak e-posta gönderme örneği

JavaMail API'sini kullanarak e-posta göndermenin çeşitli yolları vardır. Bunun için mail göndermekten sorumlu SMTP sunucunuzun olması gerekmektedir.

SMTP sunucusunu almak için aşağıdaki tekniklerden birini kullanabilirsiniz:

  • Postcast sunucusu, Apache James sunucusu, cmail sunucusu vb. herhangi bir SMTP sunucusunu kurun ve kullanın. (veya)
  • Ana makine sağlayıcısı tarafından sağlanan SMTP sunucusunu kullanın; SMTP sunucum mail.javatpoint.com (veya)
  • Diğer şirketlerin sağladığı SMTP Sunucusunu kullanın; gmail vb.

Burada javamail API kullanarak e-posta göndermeye yönelik üç yaklaşımı öğreneceğiz. Ancak Java uygulamasından e-posta göndermenin temel adımlarını öğrenmeliyiz.


JavaMail API'yi kullanarak e-posta gönderme adımları

JavaMail kullanarak e-posta göndermek için aşağıdaki üç adım vardır. Bunlar aşağıdaki gibidir:

    Oturum nesnesini alınAna bilgisayar adı, kullanıcı adı, şifre vb. gibi ana bilgisayarın tüm bilgilerini saklayan.mesajı oluştur mesajı gönder

koleksiyon javası

1) Oturum nesnesini alın

javax.mail.Session sınıfı Oturum nesnesini almak için iki yöntem sağlar; Session.getDefaultInstance() yöntemi ve Session.getInstance() yöntemi. Oturum nesnesini almak için herhangi bir yöntemi kullanabilirsiniz.

Oturum sınıfının yöntemi

HAYIR.YöntemTanım
1public static Session getDefaultInstance(Properties props)varsayılan oturumu döndürür.
2public static Session getDefaultInstance(Özellikler özellikleri, Authenticator kimlik doğrulaması)varsayılan oturumu döndürür.
3public static Session getInstance(Properties props)yeni oturumu döndürür.
4public static Session getInstance(Özellikler özellikleri, Kimlik Doğrulayıcı kimlik doğrulaması)yeni oturumu döndürür.

getDefaultInstance() yöntemi örneği

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

getInstance() yöntemi örneği

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Mesajı oluşturun

javax.mail.Message sınıfı, mesajın oluşturulmasına yönelik yöntemler sağlar. Ancak soyut bir sınıf olduğundan, çoğunlukla javax.mail.internet.MimeMessage alt sınıfı kullanılır.
Mesajı oluşturmak için MimeMessage sınıf yapıcısında oturum nesnesini iletmeniz gerekir. Örneğin:
 MimeMessage message=new MimeMessage(session); 
Artık mesaj nesnesi oluşturuldu ancak MimeMessage sınıfı bu nesnede bilgi depolamak için birçok yöntem sunuyor. MimeMessage sınıfı tarafından sağlanan yöntemleri görelim:

MimeMessage sınıfının yaygın olarak kullanılan yöntemleri

HAYIR.YöntemTanım
1public void setFrom(Adres adresi)Başlık alanını ayarlamak için kullanılır.
2public void addRecipient(Message.RecipientType türü, Adres adresi)Verilen adresi alıcı türüne eklemek için kullanılır.
3public void addRecipients(Message.RecipientType türü, Adres[] adresleri)Verilen adresleri alıcı türüne eklemek için kullanılır.
4public void setSubject(Dize konusu)Konu başlık alanını ayarlamak için kullanılır.
5public void setText(Dize metin mesajı)metni, metin/düz MIME türünü kullanarak mesaj içeriği olarak ayarlamak için kullanılır.
6public void setContent(Object msg, String contentType)İçeriği, verilen MIME türünü kullanarak mesaj içeriği olarak ayarlamak için kullanılır.

Mesajı oluşturmaya örnek:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) Mesajı gönderin

javax.mail.Transport sınıfı, mesajın gönderilmesi için yöntem sağlar.

Transport sınıfının yaygın olarak kullanılan yöntemleri

HAYIR.YöntemTanım
1genel statik geçersiz gönderme (Mesaj mesajı)mesajı göndermek için kullanılır.
2public static void send (Mesaj mesajı, Adres[] adresi)Mesajın verilen adreslere gönderilmesi için kullanılır.

Mesajı göndermek için örnek:

 Transport.send(message); 

Java'da e-posta göndermenin basit örneği

bu jar dosyalarını indirin veya en son sürümü indirmek için Oracle sitesine gidin.
Bu örnekte, makinede kurulu SMTP sunucusuyla e-postanın nasıl gönderileceğini öğreneceğiz; Postcast sunucusu, Apache James sunucusu, Cmail sunucusu vb. Host sağlayıcınızın sağladığı SMTP sunucunuzu kullanarak e-posta göndermek istiyorsanız bundan sonraki örneğe bakın.
E-postayı JavaMail API kullanarak göndermek için iki jar dosyasını yüklemeniz gerekir:
posta.jar
aktivasyon.jar
 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
e-posta göndermek için bu örneği indirin

Bu örnekte, makinede kurulu SMTP sunucusuyla e-postanın nasıl gönderileceğini öğreneceğiz; Postcast sunucusu, Apache James sunucusu, Cmail sunucusu vb. Host sağlayıcınızın sağladığı SMTP sunucunuzu kullanarak e-posta göndermek istiyorsanız bundan sonraki örneğe bakın.

Bu örneği çalıştırmak için iki jar dosyası yüklemeniz gerekir. Jar dosyasını yüklemenin 4 yolu vardır. Yollardan biri set classpath'tır. Bu örneğin nasıl çalıştırılacağını görelim:

gimp jpeg olarak kaydediyor
Jar dosyasını yükleyinc:> sınıfyolunu ayarla=mail.jar;activation.jar;.;
kaynak dosyayı derlec:> javac SendEmail.java
tarafından işletilenc:> java GönderE-posta

Ana makine sağlayıcı tarafından sağlanan SMTP sunucusu aracılığıyla Java'da e-posta gönderme örneği

bu jar dosyalarını indirin veya en son sürümü indirmek için Oracle sitesine gidin.
Ana makine sağlayıcısı tarafından sağlanan SMTP sunucusunu kullanıyorsanız, ör. mail.javatpoint.com , kullanıcı adını ve şifreyi doğrulamanız gerekir. Şifrenin kimliğini doğrulamak için javax.mail.PasswordAuthentication sınıfı kullanılır.
E-postayı JavaMail API kullanarak gönderiyorsanız iki jar dosyasını yükleyin:
posta.jar
aktivasyon.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
e-posta göndermek için bu örneği indirin

Yukarıdaki örnekte görebileceğiniz gibi kullanıcı adı ve şifrenin doğrulanması gerekiyor. Bu programın gösterdiği gibi, kolayca e-posta gönderebilirsiniz. Kullanıcı adını ve şifreyi buna göre değiştirin. Basit teknikle bir kez daha nasıl çalıştırılacağını görelim:

Jar dosyasını yükleyinc:> sınıfyolunu ayarla=mail.jar;activation.jar;.;
kaynak dosyayı derlec:> javac SendMailBySite.java
tarafından işletilenc:> java SendMailBySite