1. Pengenalan email
Sebuah email terdiri dari banyak informasi, informasi utamanya adalah sebagai berikut. Informasi lain tidak dipertimbangkan untuk saat ini, seperti carbon copy, dll.:
1. Penerima: Alamat email penerima, seperti [email protected]
2. Nama penerima: Ini akan ditampilkan ketika sebagian besar email ditampilkan, seperti loadfate [email protected]
3. Pengirim: Alamat email pengirim
4. Nama pengirim:
5. Subjek : judul email
6. Isi dan lampiran : isi utama email
2. Langkah umum mengirim email menggunakan Java
Dalam proyek umum, tidak ada server email terpisah. Secara umum, server orang lain digunakan.
1. Siapkan server SMTP: Server email yang berbeda memiliki alamat yang berbeda. Misalnya: smtp.qq.com mewakili server SMTP Tencent.
2. Otorisasi: Gunakan akun server dan kata sandi untuk masuk ke server.
3. Buat email: Buat email yang berisi semua informasi, seperti pengirim, penerima, konten, dll.
4. Atur properti email: tambahkan data ke properti email.
5. Mengirim email: Karena paketnya berbeda, metode pengirimannya tidak konsisten.
3. Surat Java dan Surat Apache
Apache Mail adalah enkapsulasi Java Mail, yang lebih mudah digunakan dan memiliki hierarki logis yang lebih baik.
Untuk menggunakan Java Mail, Anda hanya perlu mengimpor paket jar: mail.jar.
Saat menggunakan Apache Mail, Anda perlu mengimpor dua paket jar: mail.jar dan commons-email-1.3.1.jar.
4. Gunakan Java Mail untuk mengirim email
Copy kode kodenya sebagai berikut:
public static void main(String[] args) melempar Pengecualian {
String terakhir pengguna = "779554589";
kata sandi string terakhir = "";
String dariAlamat = "[email protected]";
String keAlamat = "[email protected]";
String subject = "Email subjek tes";
String content = "Ini adalah email percobaan<b>haha</b>";
//Parameter konfigurasi
Alat peraga properti = Properti baru();
props.setProperty("mail.smtp.auth", "benar");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.qq.com");
//Metode 1: Gunakan objek transport untuk mengirim email
{
//Hasilkan sesi melalui parameter
Sesi sesi = Session.getInstance(props);
//Aktifkan mode debug
sesi.setDebug(benar);
//Buat email dan atur informasi
Pesan pesan = MimeMessage baru (sesi);
pesan.setFrom(Alamat Internet baru(dariAlamat));
pesan.setSubject(subjek);
pesan.setText(konten);
//Buat transfer
Transportasi transportasi = sesi.getTransport();
//Hubungkan ke server smtp
transport.connect(pengguna, kata sandi);
//mengirim
transport.sendMessage(pesan, Alamat Internet baru[] { Alamat Internet baru(keAlamat) });
transport.close();
}
//Metode 2: Gunakan metode statis kelas Transport untuk mengirim email
{
//Dapatkan koneksi resmi saat membuat Sesi
Sesi sesi = Session.getInstance(props, new Authenticator() {
@Mengesampingkan
dilindungi PasswordAuthentication getPasswordAuthentication() {
kembalikan Otentikasi Kata Sandi baru (pengguna, kata sandi);
}
});
sesi.setDebug(benar);
//Buat email dan atur informasi
Pesan pesan = MimeMessage baru (sesi);
pesan.setSubject(subjek);
pesan.setFrom(Alamat Internet baru(dariAlamat));
pesan.setRecipient(RecipientType.TO, InternetAddress baru(toAddress));
pesan.setContent(konten, "teks/html;charset=utf-8");
//Kirim langsung, pesan dihasilkan melalui Sesi resmi
Transport.send(pesan);
}
}
5. Gunakan Apache Mail untuk mengirim email
Copy kode kodenya sebagai berikut:
kelas publik ApacheMailTest {
// server smtp
pribadi String hostName = "smtp.qq.com";
//Akun dan kata sandi
String pribadi nama pengguna = "779554589";
private String password = "Ini rahasia";
// pengirim
String pribadi dariAlamat = "[email protected]";
// Nama pengirim
String pribadi dariNama = "loadfate";
public static void main(String[] args) melempar Pengecualian {
//Nama penerima dan penerima
String keAlamat = "[email protected]";
String toName = "loadfate";
Tes ApacheMailTest = ApacheMailTest baru();
// Semua pengecualian ditangani untuk kemudahan penelusuran
test.sendSimpleEmail(toAddress, toName);
test.sendHtmlEmail(toAddress, toName);
test.sendMultiPartEmail(keAlamat, keNama);
System.out.println("Pengiriman selesai");
}
//Kirim email sederhana, mirip dengan pesan
public void sendSimpleEmail(String toAddress, String toName) memunculkan Pengecualian {
Email SimpleEmail = SimpleEmail baru();
email.setHostName(hostName);//Setel server smtp
email.setAuthentication(Nama pengguna, kata sandi);//Setel informasi otorisasi
email.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");//Setel informasi pengirim
email.addTo(toAddress, toName, "utf-8");//Setel informasi penerima
email.setSubject("Subjek Tes");//Tetapkan subjek
email.setMsg("Ini adalah tes sederhana!");//Setel konten email
email.kirim();//Kirim email
}
//Kirim email dengan konten Html
public void sendHtmlEmail(String toAddress, String toName) memunculkan Pengecualian {
HtmlEmail email = HtmlEmail baru();
email.setHostName(NamaHost);
email.setAuthentication(Nama pengguna, kata sandi);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("Ini adalah email html");
// Mengatur konten html. Dalam penggunaan sebenarnya, Anda dapat membaca kode html tertulis dari teks.
email.setHtmlMsg("<div style='width:100px;height:200px;'>a</div>");
email.kirim();
}
//Kirim email yang rumit, termasuk lampiran, dll.
public void sendMultiPartEmail(String toAddress, String toName) memunculkan Pengecualian {
Email MultiPartEmail = null;
email = new MultiPartEmail();
email.setHostName(NamaHost);
email.setAuthentication(Nama pengguna, kata sandi);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("Ini adalah email dengan lampiran");
email.setMsg("<a href='#'>Uji konten</a>");
//Tambahkan konten tambahan ke email
Lampiran EmailAttachment = EmailAttachment baru();
lampiran.setPath("D://mail.txt");//berkas lokal
// lampiran.setURL(URL baru("http://xxx/a.gif"));//file jarak jauh
lampiran.setDisposisi(EmailAttachment.ATTACHMENT);
attachment.setDescription("Informasi deskripsi");
// Tetapkan nama tampilan lampiran, yang harus dikodekan, jika tidak, bahasa Mandarin akan kacau
lampiran.setName(MimeUtility.encodeText("Mail.txt"));
//Tambahkan lampiran ke email
email.attach(lampiran);
email.kirim();
}
}
6. Folder proyek lampiran: maildemo
Alamat unduhan: http://pan.baidu.com/s/1bn1Y6BX
Jika Anda memiliki pertanyaan atau saran, silakan hubungi saya
Deskripsi berkas:
1. maildemo.zip: kode sumber maildemo
2. mail.jar: Paket jar Java Mail
3. commons-email-1.3.1.jar: paket jar Apache Mail