Java 如何从jhipster应用程序发送电子邮件

Java 如何从jhipster应用程序发送电子邮件,java,jakarta-mail,jhipster,Java,Jakarta Mail,Jhipster,我使用jhipster开发了一个应用程序。 我已经用这些信息设置了application-dev.yml文件 mail: host: smtp.gmail.com port: 587 username: **********@gmail.com password: **************** protocol: smtp tls: true properties.mail.smtp: auth: true

我使用jhipster开发了一个应用程序。 我已经用这些信息设置了application-dev.yml文件

mail:
    host: smtp.gmail.com
    port: 587
    username: **********@gmail.com
    password: ****************
    protocol: smtp
    tls: true
    properties.mail.smtp:
            auth: true
            starttls.enable: true
            ssl.trust: smtp.gmail.com
如果新用户注册,激活邮件将正确到达用户的电子邮件地址。 我的问题是,我已经写了一个联系我的页面,但我不明白send按钮是如何工作的,我已经,在java后端使用了这个方法

@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
    log.debug("Send e-mail[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 e-mail to User '{}'", to);
    } catch (Exception e) {
        log.warn("E-mail could not be sent to user '{}'", to, e);
    }
}
我认为这是从“联系我”表单发送邮件的方法。我需要一个联系我的html页面控制器? 这是我的联系我html页面

当您使用JHipster时,我想您的角度前端上有一个控制器和服务

因此,我认为您可以创建一个Spring MVC控制器来接收您的参数(收件人、主题等),并调用您在问题中发布的邮件服务(sendMail)


请让我知道我是否正确理解了您的问题。

使用“联系我”方法(例如/API/contactmes)扩展您的REST API,您将从联系人表单中调用该方法。端点可以接受具有“联系我”表单参数的POST请求:

{
    "subject": "...",
    "from": "...",
    "message": "..."
}
然后你有选择:

  • 它可以在内部使用
    MailService::sendmail
    方法与您联系(通过电子邮件)
  • 它可以将信息保存在数据库中,以便您稍后通过管理面板查看(如果您有)
  • 它可以通过多个联系渠道(如Slack、电子邮件、FB等)广播信息
  • 等等

在发送电子邮件的REST API端点中公开to参数不是一个好主意。这是一个很容易被用来发送垃圾邮件的漏洞。@jannis你完全正确!必须有一个服务中间层才能正确使用数据。我只是想解释一下主流。我也有同样的问题。有人能帮我们吗?有没有jhipster项目的样本可以分享?