diff --git a/pom.xml b/pom.xml
index 728611a8a3..d6f9081ed4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -184,14 +184,12 @@
spring-katharsis
spring-ldap
spring-mockito
- spring-mvc-email
spring-mvc-forms-jsp
spring-mvc-forms-thymeleaf
spring-mvc-java
spring-mvc-velocity
spring-mvc-webflow
spring-mvc-xml
- spring-mvc-simple
spring-mvc-kotlin
spring-security-openid
spring-protobuf
diff --git a/spring-mvc-email/README.md b/spring-mvc-email/README.md
deleted file mode 100644
index aa880188d7..0000000000
--- a/spring-mvc-email/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-## Relevant articles:
-
-- [Guide to Spring Email](http://www.baeldung.com/spring-email)
-
-## Spring MVC Email
-
-Example Spring MVC project to send email from web form.
-
-### Installing and Running
-
-Just run the Spring Boot application.
-Type http://localhost:8080 in your browser to open the application.
-
-
-### Sending test emails
-
-Follow UI links to send simple email, email using template or email with attachment.
diff --git a/spring-mvc-email/pom.xml b/spring-mvc-email/pom.xml
deleted file mode 100644
index 40d83046ef..0000000000
--- a/spring-mvc-email/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- 4.0.0
-
- org.baeldung.spring
- spring-mvc-email
- 1.0
- spring-mvc-email
- war
-
-
- parent-boot-1
- com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-1
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-tomcat
-
-
-
- org.springframework.boot
- spring-boot-starter-mail
-
-
-
- javax.servlet
- jstl
-
-
-
-
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/Application.java b/spring-mvc-email/src/main/java/com/baeldung/spring/Application.java
deleted file mode 100644
index bc5d6b3151..0000000000
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/Application.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.baeldung.spring;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.support.SpringBootServletInitializer;
-
-
-@SpringBootApplication
-public class Application extends SpringBootServletInitializer {
- public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
- }
-}
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/app/config/AppConfig.java b/spring-mvc-email/src/main/java/com/baeldung/spring/app/config/AppConfig.java
deleted file mode 100644
index 9078d44764..0000000000
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/app/config/AppConfig.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.baeldung.spring.app.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.web.servlet.config.annotation.EnableWebMvc;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-import org.springframework.web.servlet.view.InternalResourceViewResolver;
-import org.springframework.web.servlet.view.JstlView;
-import org.springframework.web.servlet.view.UrlBasedViewResolver;
-
-/**
- * Created with IntelliJ IDEA.
- * User: Olga
- */
-@Configuration
-@ComponentScan("com.baeldung.spring")
-@EnableWebMvc //tha same as
-public class AppConfig extends WebMvcConfigurerAdapter {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
- }
-
- @Bean
- public UrlBasedViewResolver urlBasedViewResolver() {
- UrlBasedViewResolver resolver = new UrlBasedViewResolver();
- resolver.setOrder(0);
- resolver.setPrefix("/WEB-INF/views/");
- resolver.setSuffix(".jsp");
- resolver.setCache(false);
- resolver.setViewClass(JstlView.class);
- return resolver;
- }
-
- @Bean
- public InternalResourceViewResolver internalResourceViewResolver() {
- InternalResourceViewResolver resolver = new InternalResourceViewResolver();
- resolver.setOrder(1);
- resolver.setPrefix("/WEB-INF/views/");
- resolver.setSuffix(".jsp");
- resolver.setViewClass(JstlView.class);
- return resolver;
- }
-
- @Bean
- public SimpleMailMessage templateSimpleMessage() {
- SimpleMailMessage message = new SimpleMailMessage();
- message.setText("This is the test email template for your email:\n%s\n");
- return message;
- }
-}
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/controllers/HomeController.java b/spring-mvc-email/src/main/java/com/baeldung/spring/controllers/HomeController.java
deleted file mode 100644
index 656e237a9e..0000000000
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/controllers/HomeController.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.baeldung.spring.controllers;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-/**
- * Created with IntelliJ IDEA.
- * User: Olga
- */
-@Controller
-@RequestMapping({"/","/home"})
-public class HomeController {
-
- @RequestMapping(method = RequestMethod.GET)
- public String showHomePage() {
- return "home";
- }
-}
diff --git a/spring-mvc-email/src/main/resources/META-INF/application.xml b/spring-mvc-email/src/main/resources/META-INF/application.xml
deleted file mode 100644
index 759a312bd4..0000000000
--- a/spring-mvc-email/src/main/resources/META-INF/application.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- SpringMVCEmail.war
- SpringMVCEmail
-
-
-
-
- web.war
- SpringMVCEmailWeb
-
-
-
\ No newline at end of file
diff --git a/spring-mvc-email/src/main/webapp/WEB-INF/web.xml b/spring-mvc-email/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 4cd41216d9..0000000000
--- a/spring-mvc-email/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- simpleweb
- org.springframework.web.servlet.DispatcherServlet
-
- contextClass
-
- org.springframework.web.context.support.AnnotationConfigWebApplicationContext
-
-
-
- contextConfigLocation
- com.baeldung.spring.app.config.AppConfig
-
- 1
-
-
-
- simpleweb
- /
-
-
-
diff --git a/spring-mvc-simple/README.md b/spring-mvc-simple/README.md
index 3505fb8009..39053534fa 100644
--- a/spring-mvc-simple/README.md
+++ b/spring-mvc-simple/README.md
@@ -5,3 +5,4 @@
- [Spring 5 and Servlet 4 – The PushBuilder](http://www.baeldung.com/spring-5-push)
- [Servlet Redirect vs Forward](http://www.baeldung.com/servlet-redirect-forward)
- [Apache Tiles Integration with Spring MVC](http://www.baeldung.com/spring-mvc-apache-tiles)
+- [Guide to Spring Email](http://www.baeldung.com/spring-email)
diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml
index be433b0d6d..ac112f7e29 100644
--- a/spring-mvc-simple/pom.xml
+++ b/spring-mvc-simple/pom.xml
@@ -20,6 +20,15 @@
spring-oxm
${spring-oxm.version}
+
+ org.springframework
+ spring-context-support
+
+
+ com.sun.mail
+ javax.mail
+ 1.6.1
+
javax.servlet
javax.servlet-api
@@ -179,7 +188,7 @@
1.2
2.3.2-b02
4.0.0
- 5.4.1.Final
+ 6.0.10.Final
enter-location-of-server
1.3.2
1.8
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
index c28ee02eef..284be6c212 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
@@ -8,6 +8,9 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.feed.RssChannelHttpMessageConverter;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@@ -20,10 +23,11 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver;
import java.util.ArrayList;
import java.util.List;
+import java.util.Properties;
@Configuration
@EnableWebMvc
-@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator" })
+@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator", "com.baeldung.spring.mail" })
public class ApplicationConfiguration implements WebMvcConfigurer {
@Override
@@ -60,4 +64,29 @@ public class ApplicationConfiguration implements WebMvcConfigurer {
converters.add(new RssChannelHttpMessageConverter());
converters.add(new JsonChannelHttpMessageConverter());
}
+
+ @Bean
+ public SimpleMailMessage templateSimpleMessage() {
+ SimpleMailMessage message = new SimpleMailMessage();
+ message.setText("This is the test email template for your email:\n%s\n");
+ return message;
+ }
+
+ @Bean
+ public JavaMailSender getJavaMailSender() {
+ JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+ mailSender.setHost("smtp.gmail.com");
+ mailSender.setPort(587);
+
+ mailSender.setUsername("my.gmail@gmail.com");
+ mailSender.setPassword("password");
+
+ Properties props = mailSender.getJavaMailProperties();
+ props.put("mail.transport.protocol", "smtp");
+ props.put("mail.smtp.auth", "true");
+ props.put("mail.smtp.starttls.enable", "true");
+ props.put("mail.debug", "true");
+
+ return mailSender;
+ }
}
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/controllers/MailController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/MailController.java
similarity index 95%
rename from spring-mvc-email/src/main/java/com/baeldung/spring/controllers/MailController.java
rename to spring-mvc-simple/src/main/java/com/baeldung/spring/controller/MailController.java
index ff828ca9ec..16d1202eef 100644
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/controllers/MailController.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/MailController.java
@@ -1,9 +1,8 @@
-package com.baeldung.spring.controllers;
+package com.baeldung.spring.controller;
import com.baeldung.spring.mail.EmailServiceImpl;
-import com.baeldung.spring.web.dto.MailObject;
+import com.baeldung.spring.domain.MailObject;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Controller;
@@ -62,6 +61,11 @@ public class MailController {
props.put("additionalInfo", "To make sure that you send an attachment with this email, change the value for the 'attachment.invoice' in the application.properties file to the path to the attachment.");
labels.put("sendAttachment", props);
}
+
+ @RequestMapping(method = RequestMethod.GET)
+ public String showEmailsPage() {
+ return "emails";
+ }
@RequestMapping(value = {"/send", "/sendTemplate", "/sendAttachment"}, method = RequestMethod.GET)
public String createMail(Model model,
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/web/dto/MailObject.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/MailObject.java
similarity index 89%
rename from spring-mvc-email/src/main/java/com/baeldung/spring/web/dto/MailObject.java
rename to spring-mvc-simple/src/main/java/com/baeldung/spring/domain/MailObject.java
index 9623ff5d78..aceaf685fa 100644
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/web/dto/MailObject.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/MailObject.java
@@ -1,7 +1,6 @@
-package com.baeldung.spring.web.dto;
-
-import org.hibernate.validator.constraints.Email;
+package com.baeldung.spring.domain;
+import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/mail/EmailService.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailService.java
similarity index 100%
rename from spring-mvc-email/src/main/java/com/baeldung/spring/mail/EmailService.java
rename to spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailService.java
diff --git a/spring-mvc-email/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
similarity index 99%
rename from spring-mvc-email/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
rename to spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
index ca418a7d90..039b970d8e 100644
--- a/spring-mvc-email/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
@@ -8,9 +8,10 @@ import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
+import java.io.File;
+
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import java.io.File;
/**
* Created by Olga on 7/15/2016.
diff --git a/spring-mvc-email/src/main/resources/application.properties b/spring-mvc-simple/src/main/resources/application.properties
similarity index 83%
rename from spring-mvc-email/src/main/resources/application.properties
rename to spring-mvc-simple/src/main/resources/application.properties
index 61a42050e5..9a804c07d8 100644
--- a/spring-mvc-email/src/main/resources/application.properties
+++ b/spring-mvc-simple/src/main/resources/application.properties
@@ -1,3 +1,5 @@
+#this property file will have to be loaded explicitly as this is not a Spring Boot project
+
# Gmail SMTP
spring.mail.host=smtp.gmail.com
spring.mail.port=587
diff --git a/spring-mvc-email/src/main/webapp/WEB-INF/views/home.jsp b/spring-mvc-simple/src/main/webapp/WEB-INF/views/emails.jsp
similarity index 100%
rename from spring-mvc-email/src/main/webapp/WEB-INF/views/home.jsp
rename to spring-mvc-simple/src/main/webapp/WEB-INF/views/emails.jsp
diff --git a/spring-mvc-email/src/main/webapp/WEB-INF/views/mail/send.jsp b/spring-mvc-simple/src/main/webapp/WEB-INF/views/mail/send.jsp
similarity index 100%
rename from spring-mvc-email/src/main/webapp/WEB-INF/views/mail/send.jsp
rename to spring-mvc-simple/src/main/webapp/WEB-INF/views/mail/send.jsp