Spring Mail инкапсулирует почтовый сервис Javamail, облегчая использование почтовой службы. Возьмите в качестве примера сервер QQ Mailbox и используйте службу Spring Mail для отправки электронных писем.
Настройте почтовый ящик QQ, «Настройки» - «учетная запись», откройте службу SMTP и создайте код авторизации
Создание кода авторизации требует проверки мобильного телефона. Затем вы можете использовать учетную запись электронной почты QQ и код авторизации для отправки электронных писем, и нет необходимости в пароле QQ.
Служба Spring Mail настроена в Spring-Context-поддержку, а затем вы можете отправлять электронные письма с сервером отправки, предоставленным почтовым ящиком QQ.
<depervice> <groupid> javax.mail </GroupId> <ArtifactId> mail </artifactid> <sersive> 1.4.7 </version> </dependency> <dependency> <groupid> org.springframework </GroupId> <ratifactid> spring-context-support </artifactid> <series> 3.2.17
Нормальная текстовая почта
Первый тест - обычная текстовая почта
пакет com.xmyself.mail; Import org.springframework.mail.simplemailmessage; импорт org.springframework.mail.javamail.javamailsenderimpl; открытый класс main {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 mail = new SommereMailMessage (); mail.setto ("[email protected]"); mail.setfrom ("[email protected]"); mail.setsubject ("тестовая почта"); mail.settext ("Test Mail Content"); mailsender.send (mail); System.out.println ("успех"); }}Запустите его и отправьте электронное письмо. Примечание. Код авторизации не является паролем, порт не 25, а 587
Далее, оставьте почтенс.
Простая html mail
Пусть отображение контента электронной почты будет отображаться в формате HTML, просто измените его следующим образом
Mimemessage mail = mailsender.creatememessage (); mimemessagehelper helper = new mimemessagehelper (mail, true); // true используется для включения режима Multipart и добавления изображения или вложения helper.setTo("[email protected]");helper.setFrom("[email protected]");helper.setSubject("test mail");helper.setText("<html><head></head><body>" + "<h1>hello!!spring html Mail</h1>" + "</body></html>" , истинный);Все еще отправляйте эту почту с помощью почтовой почты
mailsender.send (mail);
HTML Mail с картинками
Вставьте отображение изображения в HTML -контент электронной почты, измените текстовое содержимое
helper.settext ("<html> <head> </head> <body>" + "<h1> привет !! Spring html mail </h1>" + "<img src =/" cid: image/"/>" + "</body> </html>", true); файловая литература Image = new FileSystemRise (NewSystemReource (NewSySySource (NewSystemReource (NewSystemr File ("d: /test.jpg")); helper.addinline ("Image", image); HTML Mail с вложениями
Добавьте вложения в электронную почту, текстовый содержимое остается неизменным, просто измените его следующим образом
helper.settext ("<html> <head> </head> <body>" + "<h1> привет !! Spring html mail </h1>" + "</body> </html>", true); файловая инфекция Image = helper -attemresource (new File ("d: /test.jpg"); изображение); Электронная почта шаблона Freemarker
Контент HTML обычно очень богат, и он слишком грязный, чтобы писать непосредственно в методе SetText (). Следовательно, HTML следует управлять отдельно в качестве файла, а затем использовать инструменты для преобразования его содержимого в строку в качестве параметра setText (). Ниже приведено двигатель шаблона Freemarker в качестве примера
Создайте новый каталог шаблонов в каталоге Project SRC/Main/Resources и разместите файл test.ftl, содержимое следующее
<html> <head> </head> <body> <p> Test Freemarker Template, добро пожаловать $ {username} </p> <img src = "cid: image"/> </body> </html>Затем используйте инструменты, предоставленные Freemarker и Spring, чтобы преобразовать контент в строку, что, конечно, требует полагаться на новую банку
<Depective> <groupId> org.freemarker </GroupId> <artifactid> freemarker </artifactid> <sersive> 2.3.23 </version> </dependent>
Создать новый FreeMarkerParser.java
пакет com.xmyself.mail; импортировать java.util.map; import org.springframework.ui.freemarker.freemarkertemplateutils; импорт freemarker.template.configuration; импорт freemarker.template.template; открытый класс freemarkerparser {public String tohtmlString (String name, map <string> data) {@suppresswarnings ("temercation") configuration config = new configuration (); config.setclassfortemplateLoading (this.getClass (), "/templates/"); try {шаблон шаблона = config.getTemplate (name); return freemarkertemplateutils.processTemplateIntoString (шаблон, данные); } catch (Exception e) {e.printstackTrace (); } вернуть "Fail"; }}Замените содержимое $ {} в шаблоне на значение на карте, преобразуйте файл шаблона в строку строки
ПРИМЕЧАНИЕ. Конфигурация и чтение пути шаблонов во время процесса неприятны, и она временно обрабатывается таким образом.
Код для отправки электронного письма требует лишь очень маленького изменения
Map <string, string> data = new hashmap <string, string> (); data.put ("username", "chengyi"); string text = new FreemarkerParser (). TohtmlString ("test.ftl", data); helper.settext (text, true); fileystemresource Image = new FileSystemresource (новый файл ("d: /test.jpg")); helper.addinline ("Image", image);Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.