添加一个邮件模板或没有它发送邮件在jgster
问题描述:
我需要添加一个邮件模板(abc.html),如默认activationEmail.html,CreationEmail.html,passwordResetEmail.html内.../build/resources/main /mails/abc.html。当我手动创建了abc.html并且在我运行gradlew执行应用程序之后,新创建的abc.html文件被删除。那么我如何创建它?我是否需要在其他地方注册该文件? 是否有任何特定的命令来创建HTML文件作为创建一个实体jijster。我的最终目标是发送邮件。但是,如果不创建模板,我不知道在MailService.java的sendMail方法中传递内容变量的值。为内容分配null也不起作用。那么有没有内置的方法发送邮件而不使用模板?添加一个邮件模板或没有它发送邮件在jgster
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
@Async
public void sendSportMail(String email,String message) {
log.debug("Sending sports email to '{}'", email," message");
Locale locale = Locale.forLanguageTag("en");
String subject = messageSource.getMessage("email.reset.title", null, locale);
Context context = new Context(locale);
context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
String content = templateEngine.process("creationEmail", context);
sendEmail(email, subject, content, false, true);
}
有sendSportMail方法而不是“creationEmail”,我需要一个值(“abc”)来传递。或者,如果有任何方法发送邮件而不创建更好的模板。因为实际上我不需要邮件模板。我可以在sendSportMail方法中检索电子邮件和消息参数的值。所以我只需要发送邮件正文消息和收件人的邮件是电子邮件。 gmail的配置工作正常,对于已经内置的诸如密码重置,创建用户和所有功能的功能来说工作得很好。
答
不要在构建/文件夹内创建任何内容,因为它由Gradle用来编译和打包项目。它与maven的目标/文件夹类似。
在src/main/resources/mails /里面创建你的html模板