我正在学习AEM,我正在制定一项要求,我可以在其中发送电子邮件,但是我无法添加从我的计算机上浏览的附件。
要求 -
有一个HTML格式的表单,从中收集信息,还有一个浏览按钮,可以从中上传文件。
上传文件后,应立即将电子邮件发送到包含表单内容和附件的电子邮件地址。
同时,通过POST请求,表单内容和附件应该发送到JSON
通过电子邮件将内容发送到收件人和POST方法工作正常。
关于我如何让这个附属工作的任何建议?
谢谢!
答案 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);