ส่งอีเมล์ใน jsp
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-07-02 17:13:09
ส่งอีเมล์ใน jsp
1. เราสามารถส่งอีเมลผ่านกลไก JSP ใดๆ (เช่น JSWDK) ที่รองรับแพ็คเกจ sun.net.smtp ในข้อกำหนดเกี่ยวกับดวงอาทิตย์
(คำเตือน: ใช้แพ็คเกจข้อมูลจำเพาะ Sun ภายในซึ่งจะส่งผลต่อความสามารถในการพกพาโปรแกรม jsp ของคุณ)
สคริปต์เล็ตต่อไปนี้ใช้คลาส SmtpClient เพื่อส่งอีเมลในไฟล์ jsp
2. JavaMail คือ Java mail API อย่างเป็นทางการ โปรดดูที่ http://java.sun.com/products/javamail/ แม้ว่า API จะสมบูรณ์กว่าหรือซับซ้อนกว่า sun.net.smtp.SmtpClient แต่ก็สามารถพกพาได้ คลาส MailSender จะถูกสร้างขึ้นใหม่ที่นี่ ซึ่งมี JavaMail API ดังที่แสดงด้านล่าง:
// คำนำหน้า ms_ ใช้สำหรับตัวแปรคลาส MailSender
// str คำนำหน้าใช้สำหรับ String
// คำนำหน้า astr ใช้สำหรับอาร์เรย์ของ Strings
// คำนำหน้า strbuf ใช้สำหรับ StringBuffers เป็นต้น
MailSender สาธารณะ (
สตริง strFrom, // ผู้ส่ง
String[] astroTo, // ผู้รับ
String[] astrBCC, // ผู้รับสำเนาลับ ไม่จำเป็น
สตริง strSubject, // หัวเรื่อง
การดีบักบูลีน)
-
ms_strFrom = strFrom; // ใครเป็นข้อความ
ms_astrTo = astrTo; // ใคร (พหูพจน์) ข้อความถึง
ms_debugging = การดีบัก; // ใคร (พหูพจน์) ข้อความถึง
// ตั้งค่าโฮสต์
อุปกรณ์ประกอบฉากคุณสมบัติ = คุณสมบัติใหม่ ();
อุปกรณ์ประกอบฉาก.ใส่("mail.smtp.host", ms_strSMTPHost);
// สร้างคุณสมบัติบางอย่างและรับเซสชันเริ่มต้น
เซสชั่นเซสชัน = Session.getDefaultInstance (อุปกรณ์ประกอบฉาก, null);
session.setDebug(ms_debugging);
พยายาม {
//สร้างข้อความ
ms_msg = MimeMessage ใหม่ (เซสชัน);
// ตั้งค่าจาก
InternetAddress จาก = InternetAddress ใหม่ (strFrom);
ms_msg.setFrom(จาก);
// ตั้งค่าเป็น
ที่อยู่อินเทอร์เน็ต [] ที่อยู่ = ที่อยู่อินเทอร์เน็ตใหม่ [astrTo.length];
สำหรับ (int i = 0; i astroTo.length; ++i)
-
ที่อยู่ [i] = ที่อยู่อินเทอร์เน็ตใหม่ (astrTo [i]);
-
ms_msg.setRecipients (ข้อความ RecipientType.TO ที่อยู่);
// ตั้งค่าผู้รับสำเนาลับ
ถ้า (astrBCC != null)
-
ที่อยู่ = ที่อยู่อินเทอร์เน็ตใหม่ [astrBCC.length];
สำหรับ (int i = 0; i astrBCC.length; ++i)
-
eh.dbg("astrBCC[" + i + "] คือ: '" + astrBCC[i] + "'");
ที่อยู่ [i] = ที่อยู่อินเทอร์เน็ตใหม่ (astrBCC [i]);
-
ms_msg.setRecipients (ข้อความ RecipientType.BCC ที่อยู่);
-
//ตั้งหัวเรื่อง
ms_msg.setSubject(strหัวเรื่อง);
// ตั้งค่าบัฟเฟอร์สตริงที่จะเก็บข้อความ
ms_strbufMsg = StringBuffer ใหม่ ();
} จับ (MessagingException mex) {
mex.printStackTrace(System.err);
} จับ (ข้อยกเว้นเช่น) {
อดีตprintStackTrace(System.err);
-
-
โมฆะสาธารณะ ms_add (สตริง strText)
-
ms_strbufMsg.ผนวก(strText);
-
โมฆะสาธารณะ ms_send()
-
พยายาม {
// ตั้งค่าเนื้อหาเป็นข้อความธรรมดา
ms_msg.setContent(สตริงใหม่(ms_strbufMsg), "ข้อความ/ธรรมดา");
//และจากไปแล้ว
ขนส่งส่ง(ms_msg);
} จับ (ข้อยกเว้นเช่น) {
System.out.println("ตรวจพบข้อยกเว้นใน MailSender.ms_send: " + ex);
-
-