首页 > 解决方案 > 使用 Spring 和 AngularJS 发送电子邮件?

问题描述

我不知道该怎么做。我搜索了很多教程和指南,但没有一个有效。我不知道为什么,但我认为它们已经过时了,这让事情变得如此复杂。

我有一个使用 AngularJS 和 Spring 的 Maven 项目。我希望使用 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版本。

标签: javaangularjsspringemailjakarta-mail

解决方案


推荐阅读