في الوقت الحاضر ، توفر العديد من مواقع الويب وظيفة تسجيل المستخدم. عادة ، بعد أن نجحنا في التسجيل ، سوف نتلقى بريدًا إلكترونيًا من الموقع المسجل. قد تحتوي محتويات البريد الإلكتروني على معلومات مثل اسم المستخدم وكلمة المرور المسجلة ، بالإضافة إلى ارتباط تشعبي لتفعيل الحساب. اليوم سوف ننفذ مثل هذه الوظيفة. بعد سجل المستخدم بنجاح ، سيتم إرسال معلومات تسجيل المستخدم إلى البريد الإلكتروني لتسجيل المستخدم في شكل بريد إلكتروني. لإدراك وظيفة إرسال البريد الإلكتروني ، يجب استخدام Javamail.
1. بناء بيئة تنمية
1.1. إنشاء مشروع ويب
1.2. صفحة تسجيل المستخدم JSP
register.jsp
<٪@ page language = "java" pageencoding = "utf-" ٪> <! doctype html> <html> <head> <title> تسجيل صفحة </title> </head> <body> <form action = "$ {pagecontext.request.contextpath}/servlet/registervlet name = "username"> <br/> كلمة المرور: <إدخال type = "كلمة المرور"1.3. صفحة مطالبة الرسالة
message.jsp
<٪@ page language = "java" pageencoding = "utf-" ٪> <! doctype html> <html> <head> <head> صفحة موجه رسالة </title> </head> <body> $ {message} </body> </html>2. اكتب برنامج معالجة تسجيل المستخدم
2.1. قم بتطوير مجال يلف معلومات تسجيل المستخدم
user.java
package me.gacl.domain ؛ مستخدم الفئة العامة {private string username ؛ كلمة مرور السلسلة الخاصة ؛ البريد الإلكتروني الخاص بالسلسلة الخاصة ؛ السلسلة العامة getUserName () {return username ؛} public void setusername (string username) {this.username = username ؛ البريد الإلكتروني ؛} setemail public void (سلسلة البريد الإلكتروني) {this.email = email ؛}}2.2. اكتب وظيفة إرسال البريد الإلكتروني
يعد إرسال رسائل البريد الإلكتروني شيئًا يستغرق وقتًا طويلاً ، لذا إليك فئة مؤشرات ترابط لإرسال رسائل البريد الإلكتروني
package me.gacl.web.controller ؛ استيراد java.util.properties ؛ استيراد javax.mail.message ؛ استيراد javax.mail.session ؛ استيراد javax.mail.transport ClassName: sendmail* description: ترفيه فئة SendMail ، لذلك SendMail هو فئة مؤشرات ترابط ، يتم استخدامها لإرسال بريد إلكتروني إلى المستخدم المحدد* @Author: Doortor* date: - بعد الظهر:: "GACL" ؛ // كلمة مرور عنوان البريد الإلكتروني الخاص بسلسلة البريد الخاصة ، كلمة المرور الخاصة = "البريد الإلكتروني كلمة المرور" ؛ java.lang.Thread#run ()*/@@verridepublic void run () {try {properties prop = new properties () ؛ prop.setProperty ("mail.host" ، host) ؛ prop.setproperty ("mail.transport.protocol" ، "smtp") ؛ prop.setproperty ( session.getInstance (prop) ؛ sssion.setDebug (true) ؛ Transport ts = session.getTransport () ؛ ts.connect (المضيف ، اسم المستخدم ، كلمة المرور) ؛ رسالة message = createMail (جلسة ، مستخدم) ؛ RunTimeException (e) ؛}}/ *** method: createMail* description: إنشاء البريد الإلكتروني ليتم إرساله* @Anthor: lonely canglang ** @param session* @param user* @throws استثناء*/ رسالة عامة (جلسة جلسة ، مستخدم). message.setfrom (New InternetAddress (من)) ؛ message.setRecipient (message.recipienttype.to ، new InternetAddress (user.getemail ())) ؛ message.setsubject ("البريد الإلكتروني لتسجيل المستخدم") ؛ string info = "تهانينا على التسجيل الناجح ، اسم المستخدم الخاص بك:" + user.getUserName () + "، كلمة المرور الخاصة بك:" + user.getPassword () + "، يرجى الاحتفاظ بها بشكل صحيح. إذا كان لديك أي أسئلة ، يرجى الاتصال بخدمة عملاء الموقع !!" ؛ message.setContent (info ، "text/html ؛ charset = utf-") ؛ message.savechanges () ؛ return message ؛}}2.3. اكتب servlet يعالج تسجيل المستخدم
package me.gacl.web.controller ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ import javax.servlet.http.httpservlest ؛ me.gacl.domain.user ؛ import me.gacl.service.userservice ؛ registervlet public registervlet يمتد httpservlet {public void dogge (httpservletrequest request ، httpservletponse) رمي servleTexception ، ioexception طلب. رسائل البريد الإلكتروني هي مهمة تستغرق وقتًا طويلاً للغاية ، لذلك يتم فتح مؤشر ترابط آخر هنا لإرسال رسائل البريد الإلكتروني على وجه التحديد SendMail Send = new SendMail (user) ؛ // بدء مؤشر الترابط ، وبعد بدء مؤشر الترابط ، سيتم تنفيذ طريقة التشغيل لإرسال رسائل البريد الإلكتروني send.start () ؛ لقد أرسلنا بريدًا إلكترونيًا مع معلومات التسجيل. يرجى التحقق من ذلك. إذا لم تستلمها ، فقد يكون ذلك بسبب الإنترنت. سوف تستقبلها منذ فترة! ! ") ؛ request.getRequestDispatcher ("/message.jsp "). استجابة httpservletresponse) يلقي servletexception ، ioException {doge (طلب ، استجابة) ؛}}يعمل البرنامج على النحو التالي:
العديد من مواقع الويب لديها الآن مثل هذه الوظائف. بعد اكتمال تسجيل المستخدم ، سيرسل موقع الويب لنا بريدًا إلكترونيًا يعتمد على عنوان البريد الإلكتروني الذي ملأناه عند التسجيل ، ثم انقر فوق الارتباط التشعبي في البريد الإلكتروني لتنشيط مستخدمينا. هذه هي الطريقة التي يتم بها تنفيذ هذه الوظيفة.
عند تلخيص استخدام Javamail لإرسال رسائل البريد الإلكتروني ، وجد أنه عند إرسال رسائل بريد إلكتروني إلى صناديق بريد Sina أو Sohu ، قد لا تتمكن من تلقي رسائل البريد الإلكتروني على الفور. هناك دائمًا تأخير ، وأحيانًا سيتم تأخيره لفترة طويلة ، وسيتم معالجته حتى كرسائل غير مرغوب فيها ، أو قد ترفض ببساطة استقبالها. في بعض الأحيان ، يكون من العجز الانتظار لفترة طويلة لرؤية تأثير البريد الإلكتروني الناجح.
ما ورد أعلاه هو رمز المثال الخاص بوظيفة البريد الإلكتروني التي ترسل بريد Java المقدمة لك من قبل المحرر. آمل أن يكون ذلك مفيدًا للجميع!