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

时间:2016-11-11 14:53:23

标签: java javamail 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
            starttls.enable: true
            ssl.trust: smtp.gmail.com

并且一切正常。如果新用户注册,激活邮件正确到达用户电子邮件地址。 我的问题是,我写了一个页面联系我,但我不明白发送按钮是如何工作的,我已经在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页面 http://pastebin.com/h8NniSj1

2 个答案:

答案 0 :(得分:2)

当你使用JHipster时,我想你的Angular前端有一个控制器和服务。

所以,我认为您可以创建一个Spring-MVC控制器来接收您的参数(TO,Subject等等)并调用您在问题中发布的邮件服务(sendMail)。

如果我理解你的问题,请告诉我。

答案 1 :(得分:0)

使用&#34扩展您的REST API;与我联系"您将通过联系表单致电的方法(例如/ api / contactmes)。端点可以通过"联系我"接受POST请求。表格参数:

{
    "subject": "...",
    "from": "...",
    "message": "..."
}

然后你有选择:

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