sendSimpeMessage返回500

问题描述 投票:0回答:1

我相信我当前的控制器存在一些端点问题。我正在尝试使用JavaMailSender发送电子邮件。

下面的示例在发送硬编码的字符串值时很好用。

    @RequestMapping("/sendhc")
    public void sendSimpleMessage() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo("[email protected]");
        message.setSubject("subject");
        message.setText("text");
        emailSender.send(message);
    }

我希望能够使用值而不是上面显示的硬编码字符串示例进行请求。发布时,我得到了NullPointerException。

    @RequestMapping("/send")
    public void sendSimpleMessage(String to, String subject, String text) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(text);
        emailSender.send(message);
    }

enter image description here

我正在尝试使用以下值向POST到localhost:8080/send :(如上图所示)

{ "to":"[email protected]", "Subject":"New Errand", "text":"loremloremloremloremlorem" }

非常感谢我对哪里可能出错的建议。

java spring spring-boot email javamail
1个回答
1
投票

如果要在请求的正文中将参数作为JSON发送,则需要在请求中指定该参数,然后转换为Java,例如:

@RequestMapping("/send")
public void sendSimpleMessage(@RequestBody String json) {
   // convert json to Java DTO class using e.g. flexjson.JSONDeserialier   

或者,您可以指定路径变量,而不是在正文中发送:

@RequestMapping("/send/to/{to}/subject/{subject}/text/{text}")
public void sendSimpleMessage(@PathVariable("to") String to, @PathVariable("subject") String subject, @PathVariable("text") String text,) {
© www.soinside.com 2019 - 2024. All rights reserved.