添加邮件模板或不用它在jhipster中发送邮件

时间:2017-10-28 09:40:20

标签: spring spring-boot smtp thymeleaf jhipster

我需要在... / 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的配置正确完成,适用于已经内置的功能,如密码重置,创建用户和所有。

1 个答案:

答案 0 :(得分:1)

不要在build /文件夹中创建任何内容,因为gradle使用它来编译和打包项目。它类似于maven的目标/文件夹。

在src / main / resources / mails /中创建你的html模板