"Ini saya—sekali lagi. Dan sekali lagi, saya ada sedikit kejutan untuk awak."

"Hari ini saya akan mengajar anda cara menghantar e-mel menggunakan Java. "

"Mari kita mulakan dengan berita baik: Java mempunyai perpustakaan asli untuk bekerja dengan e-mel. "

"Berita buruknya ialah perpustakaan ini adalah sebahagian daripada Java EE , bukan Java SE ."

" Java EE ialah versi lanjutan JavaSE , yang termasuk kelas yang diperlukan untuk aplikasi yang lebih bagus. Contohnya, aplikasi untuk bekerja dengan e-mel."

"Faham, jadi apa yang boleh dilakukan?"

"Baiklah, saya cadangkan anda muat turun sahaja perpustakaan ini dan itu sahaja."

"Gunakan IntelliJ IDEA dengan bijak."

"Buat kelas dan tambah perpustakaan javax.mail.* dan javax.mail.internet.* ke bahagian import.

"Kemudian tekan Alt+Enter dan biarkan IDEA melakukan segala-galanya untuk anda:

"Begini rupa tawaran untuk memuat turun perpustakaan yang hilang:"

Hantar e-mel - 1

"Begini rupa tetingkap muat turun:"

Hantar e-mel - 2

"Atau anda boleh memuat turunnya di sini "

"Dimuat turun. Apa yang seterusnya?"

"Anda perlu pergi ke tetapan projek (Buka Tetapan Modul) ke bahagian Perpustakaan dan tambah fail JAR daripada arkib yang dimuat turun."

Hantar e-mel - 3

"Selesai."

"Adakah baris berikut tidak lagi merah?"

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

"Ya."

"Bagus, mari kita teruskan."

"Terdapat tiga langkah untuk menghantar e-mel."

1) Wujudkan sambungan dengan pelayan mel yang akan digunakan untuk menghantar e-mel

2) Buat e-mel dan, jika perlu, tambahkan lampiran

3) Hantar e-mel.

"Mari kita mulakan dari awal."

"Untuk menghantar e-mel dalam Java, anda perlu mewujudkan sambungan dengan pelayan mel dahulu."

"Sebaik-baiknya jika anda sudah mempunyai akaun e-mel pada pelayan. Bimbang tentang spam, pelayan mel moden tidak mahu menghantar mesej daripada pengguna tanpa nama. "

"Anda boleh menyambung ke pelayan dengan satu panggilan ke kaedah javax.mail.Session.getDefaultInstance:"

Buat sambungan dengan pelayan mel
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

"Tetapi anda perlu menghantar tetapan pelayan mel kepada kaedah ini."

"Sebagai contoh, anda boleh mencipta fail Mail.properties dan mengisinya dengan tetapan yang diingini, contohnya, sesuatu seperti ini:"

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

"Perkara yang paling penting ialah menentukan protokol dan hos, tetapi anda mungkin memerlukan tetapan tambahan, bergantung pada cara pelayan mel berfungsi."

"Anda hanya boleh menambah data ini pada objek Properties terus dalam kod Java anda."

"Sebagai contoh:"

Buat sambungan dengan pelayan mel"
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);

"Bagus, kami ada sesi. Sekarang mari buat e-mel."

"Ini lebih mudah dilakukan daripada yang kelihatan pada pandangan pertama. Contohnya:"

Buat mesej mel
// 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());

"Saya boleh menentukan mana-mana alamat e-mel sebagai penerima?"

"Ya. Apatah lagi, anda juga boleh menentukan mana-mana alamat e-mel sebagai pengirim."

"Cool! Saya akan ambil kira."

"Sekarang kita hanya perlu menghantar mesej ini."

"Mula-mula, kami log masuk ke pelayan, dan kemudian kami menghantar mesej kami. Hanya dua baris kod:"

Hantar satu mesej
// 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));

"Sungguh menarik! Saya perlu mencubanya."

"Jika anda tertanya-tanya cara menghantar mesej dengan lampiran, anda boleh membaca tentangnya di sini ."

"Jika anda juga ingin mengetahui cara menerima mel, sila lihat di sini ."

"Holy moly. Pautan yang berguna!"

"Ya, saya akan membuat klien e-mel saya sendiri sekarang. Sejuk!"

"Terima kasih, Ellie!"