- JavaMail API'sini kullanarak E-posta Gönderme
- JavaMail API'yi kullanarak e-posta gönderme adımları
- Oturum nesnesini alın
- Mesajı oluştur
- mesajı gönder
- JavaMail API kullanarak e-posta göndermenin basit örneği
- 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ın | Ana 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öntem | Tanım |
1 | public static Session getDefaultInstance(Properties props) | varsayılan oturumu döndürür. |
2 | public static Session getDefaultInstance(Özellikler özellikleri, Authenticator kimlik doğrulaması) | varsayılan oturumu döndürür. |
3 | public static Session getInstance(Properties props) | yeni oturumu döndürür. |
4 | public 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öntem | Tanım |
1 | public void setFrom(Adres adresi) | Başlık alanını ayarlamak için kullanılır. |
2 | public void addRecipient(Message.RecipientType türü, Adres adresi) | Verilen adresi alıcı türüne eklemek için kullanılır. |
3 | public void addRecipients(Message.RecipientType türü, Adres[] adresleri) | Verilen adresleri alıcı türüne eklemek için kullanılır. |
4 | public void setSubject(Dize konusu) | Konu başlık alanını ayarlamak için kullanılır. |
5 | public 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. |
6 | public 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öntem | Tanım |
1 | genel statik geçersiz gönderme (Mesaj mesajı) | mesajı göndermek için kullanılır. |
2 | public 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 ö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:bu jar dosyalarını indirin veya en son sürümü indirmek için Oracle sitesine gidin. |
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 indirinBu ö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ükleyin | c:> sınıfyolunu ayarla=mail.jar;activation.jar;.; |
kaynak dosyayı derle | c:> javac SendEmail.java |
tarafından işletilen | c:> 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
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:bu jar dosyalarını indirin veya en son sürümü indirmek için Oracle sitesine gidin. |
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 indirinYukarı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ükleyin | c:> sınıfyolunu ayarla=mail.jar;activation.jar;.; |
kaynak dosyayı derle | c:> javac SendMailBySite.java |
tarafından işletilen | c:> java SendMailBySite |