"Yine benim. Ve yine sana küçük bir sürprizim var."

"Bugün size Java kullanarak e-posta göndermeyi öğreteceğim . "

"İyi haberle başlayalım: Java'nın e-posta ile çalışmak için yerel bir kitaplığı var. "

"Kötü haber şu ki, bu kitaplık Java SE'nin değil, Java EE'nin bir parçası ."

" Java EE , daha şık uygulamalar için gerekli sınıfları içeren, JavaSE'nin genişletilmiş bir sürümüdür . Örneğin, e-posta ile çalışmak için bir uygulama."

"Anladım, öyleyse ne yapılabilir?"

"Pekala, bu kitaplığı indirmenizi öneririm, o kadar."

"IntelliJ IDEA'yı akıllıca kullanın."

"Bir sınıf oluşturun ve javax.mail.* ve javax.mail.internet.* kitaplıklarını import bölümüne ekleyin.

"Ardından Alt+Enter tuşlarına basın ve IDEA'nın sizin için her şeyi yapmasına izin verin:

"Eksik kitaplıkları indirme teklifi şöyle görünür:"

E-posta gönder - 1

"İndirme penceresi şöyle görünür:"

E-posta gönder - 2

"Veya buradan indirebilirsiniz "

"İndirildi. Sırada ne var?"

"Proje ayarlarına (Open Module Settings) Kütüphaneler bölümüne gitmeniz ve indirilen arşivden JAR dosyalarını eklemeniz gerekiyor."

E-posta gönder - 3

"Tamamlamak."

"Aşağıdaki satırlar artık kırmızı değil mi?"

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

"Evet."

"Harika, devam edelim o zaman."

"Bir e-posta göndermenin üç adımı vardır."

1) E-postayı göndermek için kullanılacak posta sunucusuyla bir bağlantı kurun

2) E-postayı oluşturun ve gerekirse ekleri ekleyin

3) E-postayı gönderin.

"Hadi baştan başlayalım."

"Java'da bir e-posta göndermek için önce posta sunucusuyla bağlantı kurmanız gerekir."

"Sunucuda zaten bir e-posta hesabınız olması en iyisidir. İstenmeyen e-posta konusunda endişe duyan modern posta sunucuları, anonim kullanıcılardan mesaj göndermek istemez. "

"Javax.mail.Session.getDefaultInstance yöntemine yapılan tek bir çağrı ile sunucuya bağlanabilirsiniz:"

Posta sunucusuyla bir bağlantı oluşturun
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

"Ama posta sunucusu ayarlarını bu yönteme geçirmeniz gerekiyor."

"Örneğin, bir Mail.properties dosyası oluşturabilir ve onu istediğiniz ayarlarla doldurabilirsiniz, örneğin şunun gibi:"

Mail.özellikleri
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

"En önemli şey protokolü ve ana bilgisayarı belirtmektir, ancak posta sunucusunun nasıl çalıştığına bağlı olarak ek ayarlara ihtiyacınız olabilir."

"Bu verileri doğrudan Java kodunuzdaki bir Özellikler nesnesine ekleyebilirsiniz."

"Örneğin:"

Posta sunucusuyla bir bağlantı oluşturun"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

"Harika, bir oturumumuz var. Şimdi bir e-posta oluşturalım."

"Bunu yapmak ilk bakışta göründüğünden daha kolay. Örneğin:"

Posta iletisi oluştur
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

"Alıcı olarak herhangi bir e-posta adresi belirtebilir miyim?"

"Evet. Üstelik gönderici olarak herhangi bir e-posta adresini de belirtebilirsiniz."

"Harika! Bunu dikkate alacağım."

"Şimdi sadece bu mesajı göndermemiz gerekiyor."

"Öncelikle sunucuda oturum açıyoruz ve ardından mesajımızı gönderiyoruz. Sadece iki satır kod:"

Bir mesaj göndermek
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

"Ne kadar ilginç! Denemek zorunda kalacağım."

"Ekleri olan bir mesajı nasıl göndereceğinizi merak ediyorsanız, bununla ilgili bilgiyi buradan okuyabilirsiniz ."

"Nasıl posta alacağınızı da öğrenmek istiyorsanız, lütfen buraya bakın ."

"Vay canına. Ne kadar yararlı bağlantılar!"

"Evet, şimdi kendi e-posta istemcimi yapacağım. Harika!"

"Teşekkürler Ellie!"