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

问题描述:

我使用jhipster开发了一个应用程序。 我已经设置好的应用dev.yml文件,此信息如何通过jhipster应用程序发送电子邮件

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 

,一切工作correctly.If新用户注册,激活邮件正确到达用户的电子邮件地址。 我的问题是,我已经写一页接触我,但我不知道如何发送按钮的工作,我已经在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); 
    } 
} 

,我认为是使用的方法从联系我发送邮件的形式。我需要一个contact-me html页面的控制器? 这是我的联系方式html页面 http://pastebin.com/h8NniSj1

+0

我也有同样的问题。任何人都可以帮忙吗? –

+0

是否有任何样品jhipster项目分享? –

当你使用JHipster,我想你在你的Angular前端有一个控制器和服务。因此,我认为你可以创建一个Spring-MVC控制器来接收你的参数(TO,Subject等),并且调用你在你的问题中发布的这个邮件服务(sendMail)。

请让我知道,如果我理解你的问题是正确的。

+0

在发送REST API端点的电子邮件中公开TO参数并不是一个好主意。这是一个易于被用来发送垃圾邮件的漏洞。 – jannis

+0

@jannis你完全正确!必须有一个服务中间层才能正确使用数据。我只是想解释主要流程。 –

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

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

然后,你必须选择:

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