我是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();
}
}