我需要在... / build / resources / main / mails / abc.html中添加默认的activationEmail.html,CreationEmail.html,passwordResetEmail.html等邮件模板(abc.html)。当我手动创建abc.html并在运行gradlew执行应用程序后,新创建的abc.html文件将被删除。那我怎么能创造它呢?我需要在其他地方注册该文件吗? 是否有任何特定的命令来创建html文件作为在jhipster中创建实体。我的最终目标是发送邮件。但是,如果不创建模板,我不知道在MailService.java中的sendMail方法中传递内容变量的值。为内容分配null也不起作用。那么有没有内置的方法来发送邮件而不使用模板?
@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的配置正确完成,适用于已经内置的功能,如密码重置,创建用户和所有。
答案 0 :(得分:1)
不要在build /文件夹中创建任何内容,因为gradle使用它来编译和打包项目。它类似于maven的目标/文件夹。
在src / main / resources / mails /中创建你的html模板