Trabajando con correos electrónicos AMP HTML
Sobre AMP
AMP (Páginas Móviles Aceleradas) es un marco de código abierto de Google creado a partir de HTML, CSS y JavaScript. Permite construir correos electrónicos ligeros con tiempos de carga más rápidos. AMP proporciona muchos componentes como carruseles, formularios, imágenes, etc. Además de ser rápido, los correos electrónicos AMP se renderizan como correos electrónicos totalmente interactivos dentro del cliente de correo y los clientes pueden interactuar con los correos electrónicos directamente, como llenar un formulario o responder a una encuesta sin salir del cliente de correo.
Trabajando con correos electrónicos AMP HTML
Aspose.Email proporciona el AmpMessage que representa un correo electrónico AMP. Aspose.Email proporciona muchas clases para agregar componentes a correos electrónicos AMP como AmpImage, AmpCarousel, AmpAccordion, AmpForm, etc. El siguiente fragmento de código demuestra cómo crear, guardar y actualizar correos electrónicos AMP utilizando la API de 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"); | |
} |