【发布时间】:2017-10-30 10:51:19
【问题描述】:
使用 Broadleaf 5.2 版,其中所有/大多数配置都切换到基于 java 的。在尝试通过取消注释 blMessageCreator bean 定义并添加我自己的 smtp 服务器设置来在 CoreEmailConfig.java 中配置电子邮件后,我可以成功发送电子邮件,但是注意到两个问题:
1) ThymeleafMessageCreator 似乎已从版本 5.x 中删除,我无法在发行说明或其他地方找到说明。我更喜欢使用 Thymeleaf 电子邮件模板,我可以添加我自己的类,它工作正常,但我仍然面临第二个问题,所以想知道是否还有其他理由删除它?
2) 无论 BLC 框架尝试注入哪个 EmailInfo bean(即 blRegistrationEmailInfo、blForgotPasswordEmailInfo 等),它似乎总是注入 CoreEmailConfig.java 文件中的最后一个。在演示站点中,最后一个是 blReturnConfirmationEmailInfo。这是其他人在 5.x 或 5.2 版本中遇到的问题,特别是 spring boot 和 java 配置?
下面是CoreEmailConfig.java
@Configuration
public class CoreEmailConfig {
/**
* A dummy mail sender has been set to send emails for testing purposes only
* To view the emails sent use "DevNull SMTP" (download separately) with the following setting:
* Port: 30000
*/
@Bean
public JavaMailSender blMailSender() {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("");
sender.setPort(587);
sender.setProtocol("smtp");
sender.setUsername("");
sender.setPassword("");
Properties javaMailProps = new Properties();
javaMailProps.setProperty("mail.smtp.starttls.enable", "true");
javaMailProps.setProperty("mail.smtp.auth", "true");
javaMailProps.setProperty("mail.smtp.timeout", "25000");
sender.setJavaMailProperties(javaMailProps);
return sender;
}
/**
* Uncomment this bean to send real emails
*/
@Bean
@Autowired
public MessageCreator blMessageCreator(@Qualifier("blEmailTemplateEngine") TemplateEngine tlTemplateEngine, @Qualifier("blMailSender") JavaMailSender mailSender) {
return new ThymeleafMessageCreator(tlTemplateEngine, mailSender);
}
// @Bean
// @Autowired
// public MessageCreator blMessageCreator(@Qualifier("blMailSender") JavaMailSender mailSender) {
// return new NullMessageCreator(mailSender);
// }
@Bean
public EmailInfo blEmailInfo() {
EmailInfo info = new EmailInfo();
info.setFromAddress("");
info.setSendAsyncPriority("2");
info.setSendEmailReliableAsync("false");
return info;
}
@Bean
public EmailInfo blRegistrationEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("You have successfully registered!");
info.setEmailTemplate("register-email");
return info;
}
@Bean
public EmailInfo blForgotPasswordEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("Reset password request");
info.setEmailTemplate("resetPassword-email");
return info;
}
@Bean
public EmailInfo blOrderConfirmationEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("Your order with The Heat Clinic");
info.setEmailTemplate("orderConfirmation-email");
return info;
}
@Bean
public EmailInfo blFulfillmentOrderTrackingEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("Your order with The Heat Clinic Has Shipped");
info.setEmailTemplate("fulfillmentOrderTracking-email");
return info;
}
@Bean
public EmailInfo blReturnAuthorizationEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("Your return with The Heat Clinic");
info.setEmailTemplate("returnAuthorization-email");
return info;
}
@Bean
public EmailInfo blReturnConfirmationEmailInfo() {
EmailInfo info = blEmailInfo();
info.setSubject("Your return with The Heat Clinic");
info.setEmailTemplate("returnConfirmation-email");
return info;
}
}
【问题讨论】:
标签: java spring-mvc broadleaf-commerce