File tree Expand file tree Collapse file tree 11 files changed +120
-4
lines changed Expand file tree Collapse file tree 11 files changed +120
-4
lines changed Original file line number Diff line number Diff line change 58
58
<artifactId >mysql-connector-java</artifactId >
59
59
</dependency >
60
60
61
+ <dependency >
62
+ <groupId >org.springframework.boot</groupId >
63
+ <artifactId >spring-boot-starter-mail</artifactId >
64
+ </dependency >
65
+
61
66
</dependencies >
62
67
63
68
<build >
Original file line number Diff line number Diff line change 9
9
import org .springframework .context .annotation .Profile ;
10
10
11
11
import jdc .loja .services .DBService ;
12
+ import jdc .loja .services .EmailService ;
13
+ import jdc .loja .services .SmtpEmailService ;
12
14
13
15
@ Configuration
14
16
@ Profile ("dev" )
@@ -28,4 +30,9 @@ public boolean instantiateDatabase() throws ParseException {
28
30
dbService .instantiateTestDatabase ();
29
31
return true ;
30
32
}
33
+
34
+ @ Bean
35
+ public EmailService emailService () {
36
+ return new SmtpEmailService ();
37
+ }
31
38
}
Original file line number Diff line number Diff line change 8
8
import org .springframework .context .annotation .Profile ;
9
9
10
10
import jdc .loja .services .DBService ;
11
+ import jdc .loja .services .EmailService ;
12
+ import jdc .loja .services .MockEmailService ;
11
13
12
14
@ Configuration
13
15
@ Profile ("test" )
@@ -21,4 +23,9 @@ public boolean instantiateDatabase() throws ParseException {
21
23
dbService .instantiateTestDatabase ();
22
24
return true ;
23
25
}
26
+
27
+ @ Bean
28
+ public EmailService emailService () {
29
+ return new MockEmailService ();
30
+ }
24
31
}
Original file line number Diff line number Diff line change @@ -160,5 +160,4 @@ public String toString() {
160
160
builder .append (nf .format (getValorTotal ()));
161
161
return builder .toString ();
162
162
}
163
-
164
163
}
Original file line number Diff line number Diff line change
1
+ package jdc .loja .services ;
2
+
3
+ import java .util .Date ;
4
+
5
+ import org .springframework .beans .factory .annotation .Value ;
6
+ import org .springframework .mail .SimpleMailMessage ;
7
+
8
+ import jdc .loja .domain .Pedido ;
9
+
10
+ public abstract class AbstractEmailService implements EmailService {
11
+
12
+ @ Value ("${default.sender}" )
13
+ private String sender ;
14
+
15
+ @ Override
16
+ public void sendOrderConfirmationEmail (Pedido obj ) {
17
+ SimpleMailMessage sm = prepareSimpleMailMessageFromPedido (obj );
18
+ sendEmail (sm );
19
+ }
20
+
21
+ protected SimpleMailMessage prepareSimpleMailMessageFromPedido (Pedido obj ) {
22
+ SimpleMailMessage sm = new SimpleMailMessage ();
23
+ sm .setTo (obj .getCliente ().getEmail ());
24
+ sm .setFrom (sender );
25
+ sm .setSubject ("Pedido confirmado! Código: " + obj .getId ());
26
+ sm .setSentDate (new Date (System .currentTimeMillis ()));
27
+ sm .setText (obj .toString ());
28
+ return sm ;
29
+ }
30
+ }
Original file line number Diff line number Diff line change
1
+ package jdc .loja .services ;
2
+
3
+ import org .springframework .mail .SimpleMailMessage ;
4
+
5
+ import jdc .loja .domain .Pedido ;
6
+
7
+ public interface EmailService {
8
+
9
+ void sendOrderConfirmationEmail (Pedido obj );
10
+
11
+ void sendEmail (SimpleMailMessage msg );
12
+ }
Original file line number Diff line number Diff line change
1
+ package jdc .loja .services ;
2
+
3
+ import org .slf4j .Logger ;
4
+ import org .slf4j .LoggerFactory ;
5
+ import org .springframework .mail .SimpleMailMessage ;
6
+
7
+ public class MockEmailService extends AbstractEmailService {
8
+
9
+ private static final Logger LOG = LoggerFactory .getLogger (MockEmailService .class );
10
+
11
+ @ Override
12
+ public void sendEmail (SimpleMailMessage msg ) {
13
+ LOG .info ("Simulando envio de Email" );
14
+ LOG .info (msg .toString ());
15
+ LOG .info ("Email enviado" );
16
+ }
17
+ }
Original file line number Diff line number Diff line change @@ -37,6 +37,9 @@ public class PedidoService {
37
37
@ Autowired
38
38
private ClienteService cliServ ;
39
39
40
+ @ Autowired
41
+ private EmailService emailServ ;
42
+
40
43
public Pedido find (Integer id ) {
41
44
Optional <Pedido > obj = rep .findById (id );
42
45
return obj .orElseThrow (() -> new ObjectNotFoundException (
@@ -64,7 +67,7 @@ public Pedido insert(Pedido obj) {
64
67
ip .setPedido (obj );
65
68
}
66
69
itemPedRep .saveAll (obj .getItens ());
67
- System . out . println (obj );
70
+ emailServ . sendOrderConfirmationEmail (obj );
68
71
return obj ;
69
72
}
70
73
Original file line number Diff line number Diff line change
1
+ package jdc .loja .services ;
2
+
3
+ import org .slf4j .Logger ;
4
+ import org .slf4j .LoggerFactory ;
5
+ import org .springframework .beans .factory .annotation .Autowired ;
6
+ import org .springframework .mail .MailSender ;
7
+ import org .springframework .mail .SimpleMailMessage ;
8
+
9
+ public class SmtpEmailService extends AbstractEmailService {
10
+
11
+ private static final Logger LOG = LoggerFactory .getLogger (SmtpEmailService .class );
12
+
13
+ @ Autowired
14
+ private MailSender mailSender ;
15
+
16
+ @ Override
17
+ public void sendEmail (SimpleMailMessage msg ) {
18
+ LOG .info ("Enviando Email..." );
19
+ mailSender .send (msg );
20
+ LOG .info ("Email enviado" );
21
+ }
22
+
23
+ }
Original file line number Diff line number Diff line change @@ -4,4 +4,14 @@ spring.datasource.password=
4
4
5
5
spring.jpa.hibernate.ddl-auto =create
6
6
spring.jpa.show-sql =true
7
- spring.jpa.properties.hibernate.form786at_sql =true
7
+ spring.jpa.properties.hibernate.form786at_sql =true
8
+
9
+ spring.mail.host =smtp.gmail.com
10
+ spring.mail.username =email
11
+ spring.mail.password =senha
12
+ spring.mail.properties.mail.smtp.auth =true
13
+ spring.mail.properties.mail.smtp.socketFactory.port =465
14
+ spring.mail.properties.mail.smtp.socketFactory.class =javax.net.ssl.SSLSocketFactory
15
+ spring.mail.properties.mail.smtp.socketFactory.fallback =false
16
+ spring.mail.properties.mail.smtp.starttls.enable =true
17
+ spring.mail.properties.mail.smtp.ssl.enable =true
You can’t perform that action at this time.
0 commit comments