إرسال البريد الإلكتروني في jsp
الكاتب:Eve Cole
وقت التحديث:2009-07-02 17:13:09
إرسال البريد الإلكتروني في jsp
1. يمكننا إرسال البريد من خلال أي محرك JSP (مثل JSWDK) يدعم حزمة sun.net.smtp في مواصفات الشمس.
(تحذير: استخدم حزمة مواصفات Sun الداخلية المضمنة، والتي ستؤثر على قابلية نقل برنامج jsp الخاص بك.)
يستخدم البرنامج النصي التالي فئة SmtpClient لإرسال رسائل البريد الإلكتروني في ملفات jsp.
2. JavaMail هي واجهة برمجة التطبيقات الرسمية لبريد Java، يرجى الرجوع إلى http://java.sun.com/products/javamail/. على الرغم من أن واجهة برمجة التطبيقات (API) أكثر ثراءً أو تعقيدًا من sun.net.smtp.SmtpClient، إلا أنها محمولة. يتم إعادة إنشاء فئة MailSender هنا، والتي تحتوي على JavaMail API. كما هو موضح أدناه:
// بادئة ms_ مخصصة لمتغيرات فئة MailSender
// البادئة str مخصصة للسلسلة
// البادئة astr مخصصة لمجموعة من السلاسل
// البادئة strbuf مخصصة لـ StringBuffers، وما إلى ذلك.
مرسل البريد العام(
سلسلة strFrom، // المرسل
سلسلة [] أسترتو، // المستلم (المستلمون)
String[] astrBCC، // مستلم (مستلمو) نسخة مخفية الوجهة، اختياري
سلسلة strSubject، // الموضوع
التصحيح المنطقي)
{
ms_strFrom = strFrom; // من الرسالة
ms_astrTo = astrTo; // من (جمع) الرسالة
ms_debugging = debugging; // من (جمع) الرسالة
// قم بتعيين المضيف
خصائص الدعائم = خصائص جديدة ()؛
props.put("mail.smtp.host"، ms_strSMTPHost)؛
// أنشئ بعض الخصائص واحصل على الجلسة الافتراضية
جلسة الجلسة = Session.getDefaultInstance(props, null);
session.setDebug(ms_debugging);
يحاول {
// إنشاء رسالة
ms_msg = new MimeMessage(session);
// تعيين من
InternetAddress from = new InternetAddress(strFrom);
ms_msg.setFrom(from);
// اضبط على
عنوان الإنترنت[] عنوان = عنوان الإنترنت الجديد[astrTo.length];
لـ (int i = 0; i astrTo.length; ++i)
{
عنوان[i] = عنوان إنترنت جديد(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, عنوان);
// قم بتعيين مستلمي نسخة مخفية الوجهة
إذا (astrBCC ! = فارغة)
{
العنوان = عنوان الإنترنت الجديد [astrBCC.length]؛
لـ (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "] هو: '" + astrBCC[i] + "'");
عنوان[i] = عنوان إنترنت جديد(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, عنوان);
}
// تعيين الموضوع
ms_msg.setSubject(strSubject);
// قم بإعداد المخزن المؤقت للسلسلة الذي سيحتوي على الرسالة
ms_strbufMsg = new StringBuffer();
} التقاط (MessagingException مكس) {
mex.printStackTrace(System.err);
} قبض (استثناء على سبيل المثال) {
ex.printStackTrace(System.err);
}
}
الفراغ العام ms_add (سلسلة strText)
{
ms_strbufMsg.append(strText);
}
الفراغ العام ms_send ()
{
يحاول {
// قم بتعيين المحتوى كنص عادي
ms_msg.setContent(new String(ms_strbufMsg), "text/plain");
// وبعيدا
Transport.send(ms_msg);
} قبض (استثناء على سبيل المثال) {
System.out.println("تم اكتشاف استثناء في MailSender.ms_send: " + ex);
}
}