فهرست منبع

Add account verification email sender

Blazej 3 سال پیش
والد
کامیت
ad45871206

+ 21 - 0
src/main/java/com/example/plantsforyou/PlantsForYouApplication.java

@@ -7,6 +7,10 @@ import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+
+import java.util.Properties;
 
 @SpringBootApplication
 public class PlantsForYouApplication {
@@ -28,4 +32,21 @@ public class PlantsForYouApplication {
             userService.enableAppUser("anna.byczek@gmail.com");
         };
     }
+    @Bean
+    public JavaMailSender getJavaMailSender() {
+        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+        mailSender.setHost("smtp-relay.sendinblue.com");
+        mailSender.setPort(587);
+
+        mailSender.setUsername("blazemakul@gmail.com");
+        mailSender.setPassword("PGyj0SJhY4TO9pBc");
+
+        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;
+    }
 }

+ 11 - 1
src/main/java/com/example/plantsforyou/registration/RegistrationService.java

@@ -6,6 +6,8 @@ import com.example.plantsforyou.appuser.AppUserService;
 import com.example.plantsforyou.registration.token.ConfirmationToken;
 import com.example.plantsforyou.registration.token.ConfirmationTokenService;
 import lombok.AllArgsConstructor;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -18,19 +20,27 @@ public class RegistrationService {
     private final AppUserService appUserService;
     private final EmailValidator emailValidator;
     private ConfirmationTokenService confirmationTokenService;
+    private JavaMailSender emailSender;
 
     public String register(RegistrationRequest request) {
         boolean isValidEmail = emailValidator.test(request.getEmail());
         if(!isValidEmail){
             throw new IllegalStateException("email not valid");
         }
-        return appUserService.signUpUser(new AppUser(
+        String token =  appUserService.signUpUser(new AppUser(
                 request.getFirstName(),
                 request.getLastName(),
                 request.getEmail(),
                 request.getPassword(),
                 AppUserRole.USER
         ));
+        String link = "https://plants-for-you.herokuapp.com/api/v1/registration/confirm?token=" + token;
+        SimpleMailMessage message = new SimpleMailMessage();
+        message.setTo(request.getEmail());
+        message.setSubject("Plants for you email validation");
+        message.setText("Hello " + request.getFirstName() + "\nClick this link to activate your account: " + link);
+        emailSender.send(message);
+        return token;
     }
 
     @Transactional