Отправить письмо с помощью Spring и AngularJS? - PullRequest
0 голосов
/ 28 апреля 2018

Понятия не имею, что делать. Я искал много учебников и руководств, но ни один из них не работает. Я не знаю почему, но я думаю, что они устарели, что усложняет ситуацию.

У меня есть проект Maven, который использует AngularJS и Spring. Я хочу использовать Gmail в качестве отправителя. Основываясь на моих исследованиях, я должен сделать что-то подобное в контроллере AngularJS после использования ng-click

$scope.sendEmail = function(){
        $scope.emailData.to = "to@gmail.com";
        $scope.emailData.subject = "Forgot Password";
        $scope.emailData.body = "Description here"

        EmailService.sendEmail($scope.emailData).then(function (response) {
            if(response.status=200){
                //sweetalert here
            }
        });


    }

, а мой EmailService -

angular.module('EmailService', []).factory('EmailService', ["$http", function ($http) {
    return {
        sendEmail: function (email) {
            return $http.post("/email/", email).then(function successCallback(response) {

                return response;
            }, function errorCallback(response) {
                return response;
                //error
            })
        },

    }
}])

У меня в Java есть контроллер, который выглядит следующим образом:

@RestController
@RequestMapping("/email")
public class EmailController {

    @Autowired
    EmailServiceImpl emailService;

    @RequestMapping( method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    public Email sendEmail(@RequestBody Email email) {
        return emailService.create(email);
    }
 }

и Email.java содержит

    private String toAddress;
    private String subject;
    private String body;

с геттерами и сеттерами, мой EmailServiceImpl.java

@Service("emailService")
public class EmailServiceImpl {

    public Email create(Email email) {

        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 email;
    }
}

так что дальше?

Примечание. Я использую JPA и версию 1.5.6.RELEASE.

...