يقوم Spring Mail بتغليف خدمة البريد الخاصة بـ Javamail ، مما يسهل استخدام خدمة البريد. خذ خادم صندوق البريد QQ كمثال ، واستخدم خدمة بريد الربيع لإرسال رسائل البريد الإلكتروني.
قم بتكوين صندوق بريد QQ ، "الإعدادات" - "الحساب" ، افتح خدمة SMTP ، وقم بإنشاء رمز إذن
يتطلب إنشاء رمز إذن التحقق من الهاتف المحمول. بعد ذلك ، يمكنك استخدام حساب QQ البريد الإلكتروني ورمز التفويض لإرسال رسائل البريد الإلكتروني ، وليس هناك حاجة لكلمة مرور QQ.
تم تكوين خدمة بريد الربيع في دعم SPRING-Context ، ثم يمكنك إرسال رسائل بريد إلكتروني مع خادم إرسال مقدم من صندوق بريد QQ.
<Rependency> <roupency> javax.mail </rougiD> <StifactId> البريد </artifactId> <الإصدار> 1.4.7 </version> </sependency> <reperence> <roupiD> org.springframework </rougeid> <StifactId> spring-context-support </artifactid>
البريد النص العادي
الاختبار الأول هو بريد نصي عادي
حزمة com.xmyself.mail ؛ استيراد org.springframework.mail.simplemailmessage ؛ استيراد org.springframework.mail.javamail.javamailsenderimpl ؛ الفئة العامة الرئيسية {public static void main (string [] args) {javamailsenderimpl mailsender = new javamailsenderimpl () ؛ mailsender.sethost ("smtp.qq.com") ؛ Mailsender.setport (587) ؛ mailsender.setUserName ("[email protected]") ؛ mailsender.setPassword ("dsruklozelxcbdba") ؛ // رمز التفويض simplemailmessage = جديد simplemailmessage () ؛ mail.setto ("[email protected]") ؛ mail.setfrom ("[email protected]") ؛ mail.setsubject ("اختبار البريد") ؛ mail.settext ("اختبار محتوى البريد") ؛ mailsender.send (mail) ؛ System.out.println ("النجاح") ؛ }}قم بتشغيله وأرسل بريدًا إلكترونيًا. ملاحظة: رمز التفويض ليس كلمة المرور ، المنفذ ليس 25 ولكن 587
بعد ذلك ، احتفظ بـ Mailsender دون تغيير ، وقم بتعديل نوع البريد ، وأرسل رسائل البريد الغنية
بريد HTML بسيط
دع محتوى البريد الإلكتروني يتم عرضه بتنسيق HTML ، فقط قم بتعديله على النحو التالي
mimemessage mail = mailsender.createmimemessage () ؛ MimemessageHelper Helper = new MimemessageHelper (Mail ، true) ؛ helper.setto ("[email protected]") ؛ helper.setfrom ("[email protected]") ؛ helper.setsubject ("test mail") ؛ helper.settext ("<html> <head> </body>" "</body> </html>" ، صحيح) ؛لا يزال يرسل هذا البريد باستخدام Mailsender
mailsender.send (mail) ؛
البريد HTML مع الصور
أدخل عرض الصورة في محتوى HTML من البريد الإلكتروني ، وقم بتعديل محتوى النص
Helper.settext ("<html> <head> </head> <body>" + "<h1> Hello !! Spring HTML Mail </h1>" + "<img src =/" cid: image/"/>" + "</body> </html> ملف ("d: /test.jpg")) ؛ helper.addinline ("Image" ، Image) ؛ البريد HTML مع المرفقات
إضافة مرفقات إلى البريد الإلكتروني ، يبقى محتوى النص دون تغيير ، فقط قم بتعديله على النحو التالي
Helper.settext ("<html> <head> </head> <body>" + "<h1> Hello !! Spring Html Mail </h1>" + "</body> </html>" ، true) ؛ fileSystemResource Image = new fileSystemResource (file new ("/test.jpg")) ؛ البريد الإلكتروني قالب الجاذبية
عادةً ما يكون محتوى HTML غنيًا جدًا ، ومن الفوضوي للغاية أن يكتب مباشرة في طريقة setText (). لذلك ، يجب إدارة HTML بشكل منفصل كملف ، ثم استخدم الأدوات لتحويل محتواه إلى سلسلة كمعلمة SetText (). ما يلي هو محرك قالب العلامات الجزرية كمثال
إنشاء دليل قوالب جديد في دليل المشروع SRC/Main/Resources ، ووضع ملف test.ftl ، المحتوى كما يلي
<html> <head> </head> <body> <p> Test FreeMarker قالب ، مرحبًا $ {username} </p> <img src = "cid: image"/> </body> </html>بعد ذلك ، استخدم الأدوات التي توفرها Freemarker و Spring لتحويل المحتوى إلى سلسلة ، والتي تتطلب بالطبع الاعتماد على الجرة الجديدة
<Rependency> <roupeD> org.freeMarker </rougeid> <StifactId> freeMarker </stifactid> <الإصدار> 2.3.23 </الإصدار> </التبعية>
قم بإنشاء علامة تجارية جديدة
حزمة com.xmyself.mail ؛ استيراد java.util.map ؛ استيراد org.springframework.ui.freemarker.freemarkertemplateUtils ؛ import freemarker.template.configuration ؛ import freemarker.template.template ؛ الفئة العامة freemarkerparser {public string tohtmlstring (اسم السلسلة ، خريطة <سلسلة ، سلسلة> بيانات) {suppressWarnings ("deprecation") config = configuration () ؛ config.setClassFortEmplatEloading (this.getClass () ، "/templates/") ؛ Try {template template = config.getTemplate (name) ؛ إرجاع freemarkertemplateutils.processTemplateIntString (قالب ، بيانات) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } العودة "فشل" ؛ }}استبدل محتوى $ {} في القالب بالقيمة في الخريطة ، قم بتحويل ملف القالب إلى سلسلة سلسلة
ملاحظة: تكوين وقراءة مسارات القالب أثناء العملية مزعجة ، ويتم معالجته مؤقتًا بهذه الطريقة.
لا يتطلب الرمز لإرسال بريد إلكتروني سوى تغيير صغير جدًا
خريطة <string ، string> data = new hashmap <string ، string> () ؛ data.put ("username" ، "chengyi") ؛ string text = new freemarkerparser (). tohtmlstring ("test.ftl" ، data) ؛ helper.settext (نص ، صحيح) ؛ ملفات fileSystemResource = new FileSystemResource (ملف جديد ("d: /test.jpg")) ؛ helper.addinline ("Image" ، Image) ؛ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.