调用邮件服务 - java.lang.NullPointerException:null

时间:2017-09-06 13:31:33

标签: java spring-boot

我是Java Spring Boot的新手 - 我正在尝试调用Mailer类来发送电子邮件。

- 所以在这个忘记密码阶段 - 我重置密码,现在我想通过电子邮件向用户发送新密码。

我试图做以下事情。

- 在我的用户处理控制器

        //send
        MailService mailer = new MailService();
            mailer.sendEmail();

- 邮件服务看起来像这样 - 在你去/ simpleemail之前有一个请求映射发送电子邮件的时候。

package services;

import java.util.HashMap;
import java.util.Map;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//import org.apache.velocity.app.VelocityEngine;
import freemarker.template.Configuration;

@Controller
public class MailService {

    @Autowired
    private JavaMailSender mailSender;

    @Autowired
    Configuration fmConfiguration;    

    /*
    @RequestMapping("/simpleemail")
    @ResponseBody
    String home() {
        try {
            sendEmail();
            return "Email Sent!";
        }catch(Exception ex) {
            return "Error in sending email: "+ex;
        }
    }*/

    public MailService(){

    }


    public void sendEmail() throws Exception{


        MimeMessage mimeMessage = mailSender.createMimeMessage();

        try {

            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

            mimeMessageHelper.setSubject("Hi");
            mimeMessageHelper.setFrom("zzzz@gmail.com");
            mimeMessageHelper.setTo("xxxx@gmail.com");



            Map < String, Object > model = new HashMap < String, Object > ();
            model.put("firstName", "Yashwant");
            model.put("lastName", "Chavan");


            mimeMessageHelper.setText(geContentFromTemplate(model), true);

            mailSender.send(mimeMessageHelper.getMimeMessage());
        } catch (MessagingException e) {
            e.printStackTrace();
        }        


    }

    public String geContentFromTemplate(Map < String, Object > model) {
        StringBuffer content = new StringBuffer();

        try {
            content.append(FreeMarkerTemplateUtils
                .processTemplateIntoString(fmConfiguration.getTemplate("email-template.txt"), model));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return content.toString();
    }
}

0 个答案:

没有答案