1. AppConfig添加 objectMapper的bean
@Bean ObjectMapper createObjectMapper(){ return new ObjectMapper(); }
2. MailMessage 自定义
@Component public class MailMessage { private String from; private String replyTo; private String to; private String cc; private String bcc; private Date sentDate; private String subject; private String text;
public void setFrom(String s) throws MailParseException { this.from=s; }
public void setReplyTo(String s) throws MailParseException { this.replyTo=s; }
public void setTo(String s) throws MailParseException { this.to=s; }
public void setTo(String... strings) throws MailParseException { }
public void setCc(String s) throws MailParseException { this.cc=s; }
public void setCc(String... strings) throws MailParseException { //待补齐 }
public void setBcc(String s) throws MailParseException { this.bcc=s; }
public void setBcc(String... strings) throws MailParseException {
//待补齐 }
public void setSentDate(Date date) throws MailParseException { this.sentDate=date; }
public void setSubject(String s) throws MailParseException { this.subject=s; }
public void setText(String s) throws MailParseException { this.text=s; }
public String getBcc() { return bcc; }
public String getCc() { return cc; }
public String getFrom() { return from; }
public String getReplyTo() { return replyTo; }
public Date getSentDate() { return sentDate; }
public String getText() { return text; }
public String getSubject() { return subject; }
public String getTo() { return to; }
}
3. MailService
1). 增加 mailMessage成员、属性, 用于封装待发送内容
private MailMessage mailMessage;
public void setMailMessage(User user){ mailMessage=new MailMessage(); mailMessage.setFrom(user.getEmail()); mailMessage.setTo(user.getEmail()); mailMessage.setSubject("Welcome to Java course!"); String text = String.format("<p>Hi, %s,</p><p>Welcome to Java course!</p><p>Sent at %s</p>", user.getName(), LocalDateTime.now()); mailMessage.setText(text); }
public MailMessage getMailMessage() { return mailMessage; }
需在MailService里增加sendRegistrationMail(MailMessage mailMessage)方法
public void sendRegistrationMail(MailMessage mm){ logger.info("开始发送注册邮件"); try { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, "utf-8"); helper.setFrom(mm.getFrom()); helper.setTo(mm.getTo()); helper.setSubject(mm.getSubject()); helper.setText(mm.getText(), true); mailSender.send(mimeMessage); } catch (MessagingException e) { throw new RuntimeException(e); } }
4. UserController,注册方法
1. 注册成功后,设置邮件内容、发送消息给MQ
@PostMapping("/register") public void register(HttpServletRequest req, HttpServletResponse resp,Register registerInfo) throws IOException { System.out.println(registerInfo); Map<String, Object> model; try { User user = userService.registerA(registerInfo); logger.info("user registered: {}", user.getEmail()); // send registration mail: executorService.submit(() -> { mailService.setMailMessage(user); try { messagingService.sendMailMessage(mailService.getMailMessage()); } catch (Exception e) { e.printStackTrace(); } });
......
Sign in to make a reply
净净一隅
1. AppConfig添加 objectMapper的bean
@Bean
ObjectMapper createObjectMapper(){
return new ObjectMapper();
}
2. MailMessage 自定义
@Component
public class MailMessage {
private String from;
private String replyTo;
private String to;
private String cc;
private String bcc;
private Date sentDate;
private String subject;
private String text;
public void setFrom(String s) throws MailParseException {
this.from=s;
}
public void setReplyTo(String s) throws MailParseException {
this.replyTo=s;
}
public void setTo(String s) throws MailParseException {
this.to=s;
}
public void setTo(String... strings) throws MailParseException {
}
public void setCc(String s) throws MailParseException {
this.cc=s;
}
public void setCc(String... strings) throws MailParseException {
//待补齐
}
public void setBcc(String s) throws MailParseException {
this.bcc=s;
}
public void setBcc(String... strings) throws MailParseException {
//待补齐
}
public void setSentDate(Date date) throws MailParseException {
this.sentDate=date;
}
public void setSubject(String s) throws MailParseException {
this.subject=s;
}
public void setText(String s) throws MailParseException {
this.text=s;
}
public String getBcc() {
return bcc;
}
public String getCc() {
return cc;
}
public String getFrom() {
return from;
}
public String getReplyTo() {
return replyTo;
}
public Date getSentDate() {
return sentDate;
}
public String getText() {
return text;
}
public String getSubject() {
return subject;
}
public String getTo() {
return to;
}
}
3. MailService
1). 增加 mailMessage成员、属性, 用于封装待发送内容
private MailMessage mailMessage;
public void setMailMessage(User user){
mailMessage=new MailMessage();
mailMessage.setFrom(user.getEmail());
mailMessage.setTo(user.getEmail());
mailMessage.setSubject("Welcome to Java course!");
String text = String.format("<p>Hi, %s,</p><p>Welcome to Java course!</p><p>Sent at %s</p>", user.getName(), LocalDateTime.now());
mailMessage.setText(text);
}
public MailMessage getMailMessage() {
return mailMessage;
}
需在MailService里增加sendRegistrationMail(MailMessage mailMessage)方法
public void sendRegistrationMail(MailMessage mm){
logger.info("开始发送注册邮件");
try {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, "utf-8");
helper.setFrom(mm.getFrom());
helper.setTo(mm.getTo());
helper.setSubject(mm.getSubject());
helper.setText(mm.getText(), true);
mailSender.send(mimeMessage);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
4. UserController,注册方法
1. 注册成功后,设置邮件内容、发送消息给MQ
@PostMapping("/register")
public void register(HttpServletRequest req, HttpServletResponse resp,Register registerInfo) throws IOException {
System.out.println(registerInfo);
Map<String, Object> model;
try {
User user = userService.registerA(registerInfo);
logger.info("user registered: {}", user.getEmail());
// send registration mail:
executorService.submit(() -> {
mailService.setMailMessage(user);
try {
messagingService.sendMailMessage(mailService.getMailMessage());
} catch (Exception e) {
e.printStackTrace();
}
});
......
}