سيعلمك هذا الفصل كيفية استخدام تطبيق Struts2 لإرسال رسائل البريد الإلكتروني. لهذا التمرين ، تحتاج إلى تنزيل وتثبيت Mail.jar من Javamail API 1.4.4 ووضع ملف mail.jar في مجلد ويب inflib ، ثم تابع اتباع الخطوات القياسية لإنشاء الإجراءات ، وملفات المشاهدات ، وملفات التكوين.
إنشاء إجراء:
والخطوة التالية هي إنشاء طريقة إجراء وإرسال بريد إلكتروني. دعنا ننشئ فئة جديدة تسمى البريد الإلكتروني. java مع المحتوى التالي.
package com.yiibai.struts2 ؛ import java.util.properties ؛ import javax.mail com.opensymphony.xwork2.Actionsupport ؛ public class emailer يمتد الإجراءات Upport {private string from ؛ كلمة مرور السلسلة الخاصة ؛ سلسلة خاصة إلى ؛ موضوع السلسلة الخاصة ؛ سلسلة سلسلة خاصة خصائص الخصائص الثابتة = خصائص جديدة () ؛ Static {properties.put ("mail.smtp.host" ، "smtp.gmail.com") ؛ Properties.put ("mail.smtp.socketfactory.port" ، "465") ؛ Properties.put ("mail.smtp.socketfactory.class" ، "javax.net.ssl.sslsocketfactory") ؛ properties.put ("mail.smtp.auth" ، "true") ؛ properties.put ("mail.smtp.port" ، "465") ؛ } السلسلة العامة تنفيذ () {string ret = success ؛ جرب {Session Session = Session.getDefaultInstance (الخصائص ، new javax.mail.authenticator () {محمية passwordauthentication getPasswordauthentication () {إرجاع كلمة مرور جديدة (من ، كلمة المرور) ؛}}) ؛ رسالة رسالة = mimemessage الجديد (الجلسة) ؛ message.setfrom (New InternetAddress (من)) ؛ message.setRecipients (message.RecipientType.to ، InternetAddress.parse (to)) ؛ message.SetSubject (الموضوع) ؛ message.settext (الجسم) ؛ Transport.Send (Message) ؛ } catch (استثناء e) {ret = error ؛ E.PrintStackTrace () ؛ } إرجاع ret ؛ } السلسلة العامة getFrom () {return from ؛ } public void setFrom (سلسلة من) {this.from = from ؛ } السلسلة العامة getPassword () {return password ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ } سلسلة عامة getto () {return to ؛ } public void setto (string to) {this.to = to ؛ } السلسلة العامة getSubject () {return subner ؛ } public void setSUBject (string string) {this.subject = toffice ؛ } السلسلة العامة getBody () {return Body ؛ } public void setBody (سلسلة سلسلة) {this.body = body ؛ } الخصائص الثابتة العامة getProperties () {عودة خصائص ؛ } setProperties public static void (خصائص الخصائص) {البريد الإلكتروني. properties = الخصائص ؛ }}يمكنك أن ترى أنه في الكود المصدر أعلاه ، يحتوي البريد الإلكتروني. java على الخصائص المقابلة لصفحة eMail.jsp الواردة أدناه في النموذج. هذه الخصائص
هل فكرنا في أي التحقق من صحة كل من السمات المذكورة أعلاه ، وسيتم إضافة التحقق من الصحة في الفصل التالي. الآن دعونا نلقي نظرة على طريقة التنفيذ (). تستخدم طريقة Execute () مكتبة بريد Javax لإرسال بريد إلكتروني ، باستخدام المعلمات المقدمة. إذا تم إرسال الرسالة ، فإن الإجراء يعيد النجاح ، وإلا فإنه يعيد الخطأ.
إنشاء صفحة رئيسية:
دعنا نكتب ملف JSP الخاص بالصفحة الرئيسية index.jsp ، والذي سيتم استخدامه لجمع معلومات حول رسائل البريد الإلكتروني ، كما ذكر أعلاه:
<٪@ page language = "java" contentType = "text/html ؛ charset = iso-8859-1" pageencoding = "ISO-8859-1" ٪> <٪@ taglib premix = "s" si = "/struts-tags" ٪> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head> <title> نموذج الجيل </title> </head> <mod> <em> يستخدم النموذج أدناه خادم SMTP الخاص بـ Google. لذلك تحتاج إلى إدخال اسم مستخدم وكلمة مرور Gmail </em> <form Action = "البريد الإلكتروني" method = "post"> <label for = "from"> من </label> <br/> <input type = "text" name = "from"/> <ber/> <blabe for = "password" بالنسبة إلى = "to"> إلى </label> <br/> <input type = "text" name = "to"/> <br/> <label for = "tourge"> الموضوع </label> <br/> <input type = "text" name = "there"/> <br/> <bility for = "body" </form> </body> </html>
إنشاء عرض:
سنستخدم Success.jsp من ملف JSP لإرجاع النجاح في الحالة التي يتم فيها استدعاء الإجراء ، ولكن في حالة حدوث خطأ ، سيكون لدينا طريقة أخرى يتم إرجاع الملف من الإجراء.
<٪@ page language = "java" contentType = "text/html ؛ charset = iso-8859-1" pageencoding = "ISO-8859-1" ٪> <٪@ taglib premix = "s" si = "/struts-tags" ٪> <! "http://www.w3.
سيكون ما يلي في حالة خطأ ، إرجاع عرض ملف ERROR.JSP من الإجراء.
<٪@ page language = "java" contentType = "text/html ؛ charset = iso-8859-1" pageencoding = "ISO-8859-1" ٪> <٪@ taglib premix = "s" si = "/struts-tags" ٪> <! "http://www.w3.
ملف التكوين:
الآن دعونا نجمع كل هذا مع ملف التكوين لـ Struts.xml على النحو التالي:
<؟ name = "helloWorld" تمديد = "Struts-Default"> <Action name = "emailer" method = "execute"> <result name = "success">/success.
فيما يلي المحتوى في ملف web.xml:
<؟ xmlns: web = "http://java.sun.com/xml/ns/javaee" XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "webapp_id" الإصدار = "3.0" <riled-file> index.jsp </iship-file> </iship-file-list> <lipter> <ilter-name> struts2 </filter-name> <lipter-class> org.apache.struts2.dispatcher <Url-pattern>/*</url-pattern> </filter-mapping> </bil-app>
الآن ، انقر بزر الماوس الأيمن على اسم المشروع وانقر فوق "تصدير>" ملف الحرب لإنشاء ملف حرب. ثم نشر هذه الحرب في دليل Tomcat's WebApps. أخيرًا ، ابدأ خادم Tomcat وحاول الوصول إلى عنوان URL http: // localhost: 8080/helloWorldstruts2/index.jsp. هذا يعطي الصورة التالية:
أدخل المعلومات المطلوبة وانقر فوق الزر "إرسال البريد الإلكتروني". إذا سارت الأمور على ما يرام ، فيجب أن ترى الصفحة التالية:
إذا تم استخدام أطر عمل SSH الثلاثة معًا ، فسوف أعطيك مثالاً هنا ، ولكن بالإضافة إلى أطر عمل الدعامات والربيع ، mail.jar ، exactation.jar مطلوب أيضًا.
1) قم بتكوين Bean أولاً في ملف ApplicationContext.xml
<bean id = "mailsender"> <property name = "host" value = "host"/> <property name = "username" value = "username"/> <property name = "password" value = "password"/> </bean> <bean id = "sendMailAction"
2) تنفيذ رمز فئة Java لإرسال رسائل البريد الإلكتروني
محمي javamailsenderimpl mailsender ؛ الطبقة العامة sendMailAction يمتد الإجراءات {public void setmailsender (javamailsenderimpl mailsender) {this.mailsender = mailsender ؛} public void sendmail () استثناء {1: بريد إلكتروني بسيط
محمي javamailsenderimpl mailsender ؛ الطبقة العامة sendMailAction يمتد الإجراءات {public void setmailsender (javamailsenderimpl mailsender) {this.mailsender = mailsender ؛} public void sendmail () استثناء { 2: إرسال بريد HTML
// إنشاء رسائل بريد إلكتروني ، وإرسال رسائل بريد إلكتروني بسيطة ورسائل البريد الإلكتروني html mimemessage mailMessage = senderimpl.CreateMimeMessage () ؛ mimemessageHelper messageHelper = new mimemessageHelper (mailMessage) ؛ // قم بتعيين المستلم والمرسل MessageHelper.setto ("[email protected]") ؛ MessageHelper.setFrom ("[email protected]") ؛ messageHelper.SetSubject ("اختبار HTML Mail!") ؛ // message messagehelper.settext ("<html> <head> </head> <body> <h1> Hello !! Zhangjian </h1> </body> </html>" ، True) ؛ // إرسال البريد الإلكتروني senderimpl.send (mailMessage) ؛3: صور متداخلة في هذا الاختبار البريد الإلكتروني
// إنشاء رسائل بريد إلكتروني ، وإرسال رسائل بريد إلكتروني بسيطة ورسائل البريد الإلكتروني html mimemessage mailMessage = senderimpl.CreateMimeMessage () ؛ // لاحظ أن المنطقية هنا لا يمكنها إلا أن يعشش الصور عندما يكون ذلك صحيحًا. عند بناء mimemessageHelper ، تكون القيمة المعطاة صحيحة لتمكينها. Multipart Mode MimemessageHelper MessageHelper = new MimemessageHelper (MailMessage ، true) ؛ // قم بتعيين المستلم ، Sender MessageHelper.setto ("[email protected]") ؛ MessageHelper.setFrom ("[email protected]") ؛ messageHelper.SetSubject ("الصور المتداخلة في اختبار البريد !!") ؛ // TRUE يشير إلى الرسالة في تنسيق HTML MessageHelper.settext ("<html> <head> </head> <body> <h1> Hello !! Zhangjian </h1>" + "<img src ="/"mce_src ="/"" cid: aaa/"/////html>" ، FileSystemResource img = new FileSystemResource (ملف جديد ("C: /AAA.JPG")) ؛ messageHelper.addinline ("AAA" ، IMG) ؛ // إرسال البريد الإلكتروني senderimpl.send (mailMessage) ؛ }}