Kirim email dalam jsp
Penulis:Eve Cole
Waktu Pembaruan:2009-07-02 17:13:09
Kirim email dalam jsp
1. Kita dapat mengirim email melalui mesin JSP apa pun (seperti JSWDK) yang mendukung paket sun.net.smtp dalam spesifikasi sun.
(Peringatan: Gunakan paket spesifikasi internal Sun, yang akan memengaruhi portabilitas program jsp Anda.)
Scriptlet berikut menggunakan kelas SmtpClient untuk mengirim email dalam file jsp.
2. JavaMail adalah API email Java resmi, silakan merujuk ke http://java.sun.com/products/javamail/. Meskipun API ini lebih kaya atau lebih kompleks daripada sun.net.smtp.SmtpClient, API ini bersifat portabel. Kelas MailSender dibuat ulang di sini, yang berisi JavaMail API. Seperti yang ditunjukkan di bawah ini:
// awalan ms_ untuk variabel kelas MailSender
// awalan str untuk String
// awalan astr untuk array String
// awalan strbuf untuk StringBuffers, dll.
Pengirim Surat publik(
String strFrom, // pengirim
String[] astrTo, // penerima
String[] astrBCC, // penerima bcc, opsional
String strSubjek, // subjek
debugging boolean)
{
ms_strFrom = strFrom; // dari siapa pesan tersebut
ms_astrTo = astrTo; // kepada siapa (jamak) pesan tersebut
ms_debugging = debugging; // kepada siapa (jamak) pesan tersebut
// atur hostnya
Alat peraga properti = Properti baru();
props.put("mail.smtp.host", ms_strSMTPHost);
// buat beberapa properti dan dapatkan Sesi default
Sesi sesi = Session.getDefaultInstance(props, null);
sesi.setDebug(ms_debugging);
mencoba {
//buat pesan
ms_msg = MimeMessage baru(sesi);
// atur dari
Alamat Internet dari = Alamat Internet baru(strFrom);
ms_msg.setFrom(dari);
// setel ke
Alamat Internet[] alamat = Alamat Internet baru[astrTo.length];
untuk (int i = 0; i astrTo.length; ++i)
{
alamat[i] = Alamat Internet baru(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, alamat);
// atur penerima bcc
jika (astrBCC != nol)
{
alamat = Alamat Internet baru[astrBCC.length];
untuk (int i = 0; i astrBCC.panjang; ++i)
{
eh.dbg("astrBCC[" + i + "] adalah: '" + astrBCC[i] + "'");
alamat[i] = Alamat Internet baru(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, alamat);
}
// atur subjeknya
ms_msg.setSubject(strSubjek);
// atur buffer string yang akan menampung pesan
ms_strbufMsg = StringBuffer baru();
} tangkapan (MessagingException mex) {
mex.printStackTrace(System.err);
} catch (Pengecualian misalnya) {
ex.printStackTrace(System.err);
}
}
kekosongan publik ms_add(String strTeks)
{
ms_strbufMsg.append(strText);
}
kekosongan publik ms_send()
{
mencoba {
// atur konten sebagai teks biasa
ms_msg.setContent(String baru(ms_strbufMsg), "teks/polos");
// dan pergi
Transportasi.kirim(ms_msg);
} catch (Pengecualian misalnya) {
System.out.println("Terdapat pengecualian di MailSender.ms_send: " + ex);
}
}