从本地计算机附加文件以在cq / AEM中发送邮件

时间:2015-10-30 14:43:25

标签: email cq5 aem

我正在学习AEM,我正在制定一项要求,我可以在其中发送电子邮件,但是我无法添加从我的计算机上浏览的附件。

要求 -

有一个HTML格式的表单,从中收集信息,还有一个浏览按钮,可以从中上传文件。

上传文件后,应立即将电子邮件发送到包含表单内容和附件的电子邮件地址。

同时,通过POST请求,表单内容和附件应该发送到JSON

通过电子邮件将内容发送到收件人和POST方法工作正常。

关于我如何让这个附属工作的任何建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

在HTML中,您可以从输入框中获取文件,类型为“file”,如下::

<form id="submitForm" action="/bin/servlets/submitForm" method="POST" novalidate="novalidate" enctype="multipart/form-data">
<label for="name">Name </label><input name="userName" type="text" class="fieldInner"  id="name" required>
<input name="file" value="Choose File" type="file" class="chooseFileInner" required/>
<input type="submit" id="applied" value="Submit"/>
</form>

在java中,您可以将此文件作为::

获取
RequestParameter attach = request.getRequestParameter("file");
InputStream ip = attach.getInputStream();
MailTemplate mailTemplate = MailTemplate.create(templatePath, session);
HtmlEmail email = mailTemplate.getEmail(StrLookup.mapLookup(new HashMap<String, String>(parameters)), HtmlEmail.class);
ByteArrayDataSource fileDS = new ByteArrayDataSource(ip, "application/pdf");
email.attach(fileDS, "application/pdf", "This is your attached file.");
messageGateway = messageGatewayService.getGateway(HtmlEmail.class);
messageGateway.send(email);

您也可以参考此Link to send images in email in aem