Trabalhando com Emails AMP HTML
Sobre AMP
AMP (Páginas Móveis Aceleradas) é uma estrutura de código aberto da Google criada a partir de HTML, CSS e JavaScript. Ela permite a construção de emails leves com tempos de carregamento mais rápidos. AMP fornece muitos componentes como carrosséis, formulários, imagens, etc. Além de ser rápida, os Emails AMP renderizam emails totalmente interativos dentro do cliente de email e os clientes podem interagir com os emails diretamente, como preencher um formulário ou responder a uma pesquisa sem sair do cliente de email.
Trabalhando com Emails AMP HTML
Aspose.Email fornece o AmpMessage que representa um Email AMP. Aspose.Email fornece muitas classes para adicionar componentes aos Emails AMP, como AmpImage, AmpCarousel, AmpAccordion, AmpForm, etc. O seguinte trecho de código demonstra a criação, salvamento e atualização de Emails AMP usando a API Aspose.Email.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java | |
String dataDir = Utils.getSharedDataDir(CustomHyperlinkRendering.class) + "OutputDirectory/"; | |
AmpMessage msg = new AmpMessage(); | |
msg.setHtmlBody("<html><body> Hello AMP </body></html>"); | |
//add AmpAnim component | |
AmpAnim anim = new AmpAnim(800, 400); | |
anim.setSrc("https://placekitten.com/800/400"); | |
anim.setAlt("Test alt"); | |
anim.setAttribution("The Go gopher was designed by Reneee French"); | |
anim.getAttributes().setLayout(LayoutType.Responsive); | |
anim.setFallback("offline"); | |
msg.addAmpComponent(anim); | |
//add AmpImage component | |
AmpImage img = new AmpImage(800, 400); | |
img.setSrc("https://placekitten.com/800/400"); | |
img.setAlt("Test alt"); | |
img.getAttributes().setLayout(LayoutType.Responsive); | |
msg.addAmpComponent(img); | |
//add AmpCarousel component | |
AmpCarousel car = new AmpCarousel(800, 400); | |
img = new AmpImage(800, 400); | |
img.setSrc("https://amp.dev/static/img/docs/tutorials/firstemail/photo_by_caleb_woods.jpg"); | |
img.setAlt("Test 2 alt"); | |
img.getAttributes().setLayout(LayoutType.Fixed); | |
car.getImages().add(img); | |
img = new AmpImage(800, 400); | |
img.setSrc("https://placekitten.com/800/400"); | |
img.setAlt("Test alt"); | |
img.getAttributes().setLayout(LayoutType.Responsive); | |
car.getImages().add(img); | |
img = new AmpImage(800, 400); | |
img.setSrc("https://amp.dev/static/img/docs/tutorials/firstemail/photo_by_craig_mclaclan.jpg"); | |
img.setAlt("Test 3 alt"); | |
img.getAttributes().setLayout(LayoutType.Fill); | |
car.getImages().add(img); | |
msg.addAmpComponent(car); | |
//add AmpFitText component | |
AmpFitText txt = new AmpFitText("Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt."); | |
txt.getAttributes().setWidth(600); | |
txt.getAttributes().setHeight(300); | |
txt.getAttributes().setLayout(LayoutType.Responsive); | |
txt.setMinFontSize(8); | |
txt.setMaxFontSize(16); | |
txt.setValue("Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt."); | |
msg.addAmpComponent(txt); | |
//add AmpAccordion component | |
AmpAccordion acc = new AmpAccordion(); | |
acc.setExpandSingleSection(true); | |
Section sec = new Section(); | |
sec.setHeader(new SectionHeader(SectionHeaderType.h2, "Section 1")); | |
sec.setValue(new SectionValue("Content in section 1.")); | |
acc.getSections().add(sec); | |
sec = new Section(); | |
sec.setHeader(new SectionHeader(SectionHeaderType.h2, "Section 2")); | |
sec.setValue(new SectionValue("Content in section 2.")); | |
acc.getSections().add(sec); | |
img = new AmpImage(800, 400); | |
img.setSrc("https://placekitten.com/800/400"); | |
img.setAlt("Test alt"); | |
img.getAttributes().setLayout(LayoutType.Responsive); | |
sec = new Section(); | |
sec.setHeader(new SectionHeader(SectionHeaderType.h2, "Section 3")); | |
sec.setValue(new SectionValue(img)); | |
acc.getSections().add(sec); | |
msg.addAmpComponent(acc); | |
//add AmpForm component | |
AmpForm form = new AmpForm(); | |
form.setMethod(FormMethod.Post); | |
form.setActionXhr("https://example.com/subscribe"); | |
form.setTarget(FormTarget.Top); | |
FormField field = new FormField("Name:", "text"); | |
field.setName("name"); | |
field.setRequired(true); | |
form.getFieldset().add(field); | |
field = new FormField("Email:", "email"); | |
field.setName("email"); | |
field.setRequired(true); | |
form.getFieldset().add(field); | |
field = new FormField(); | |
field.setInputType("submit"); | |
field.setValue("Subscribe"); | |
form.getFieldset().add(field); | |
msg.addAmpComponent(form); | |
msg.save(dataDir + "AmpTest_1.eml"); | |
MailMessage savedmsg = MailMessage.load(dataDir + "AmpTest_1.eml"); | |
AmpMessage ampMsg = (AmpMessage)savedmsg; | |
if(ampMsg != null) | |
{ | |
Date dt = new Date(); | |
AmpTimeago time = new AmpTimeago(dt); | |
time.getAttributes().setWidth(600); | |
time.getAttributes().setHeight(300); | |
time.getAttributes().setLayout(LayoutType.Fixed); | |
time.setLocale("en-US"); | |
time.setCutoff(600); | |
ampMsg.addAmpComponent(time); | |
ampMsg.save(dataDir + "AmpTest_2.eml"); | |
} |