AMP(加速的移动页面)是Google的开发人员软件包,它允许开发负载更快的轻量级系统。AMP是由HTML,JavaScript和CSS组成的框架,它们是为用户提供Web内容优先格式的标准。
Aspose.Email for .NET是一套全面的电子邮件处理API,可用于构建跨平台应用程序。近期的更新中,Aspose.Email支持AMP HTML电子邮件。通过将Google的AMP项目的一部分用于电子邮件,Aspose.Email目前拥有大量要使用的组件列表,这种方法的主要优点是提高了消息下载速度,这对大多数用户来说至关重要。
除了速度快之外,AMP电子邮件还可以在电子邮件客户端内部呈现完全交互式的电子邮件,客户可以直接与电子邮件进行交互,例如填写表格或回复调查而无需离开电子邮件客户。
下面我们来了解一下使用Aspose.Email API创建,保存和更新AMP电子邮件的过程。
string dataDir = RunExamples.GetDataDir_Output(); AmpMessage msg = new AmpMessage(); msg.HtmlBody = "Hello AMP"; //add AmpAnim component AmpAnim anim = new AmpAnim(800, 400); anim.Src = "https://placekitten.com/800/400"; anim.Alt = "Test alt"; anim.Attribution = "The Go gopher was designed by Reneee French"; anim.Attributes.Layout = LayoutType.Responsive; anim.Fallback = "offline"; msg.AddAmpComponent(anim); //add AmpImage component AmpImage img = new AmpImage(800, 400); img.Src = "https://placekitten.com/800/400"; img.Alt = "Test alt"; img.Attributes.Layout = LayoutType.Responsive; msg.AddAmpComponent(img); //add AmpCarousel component AmpCarousel car = new AmpCarousel(800, 400); img = new AmpImage(800, 400); img.Src = "https://amp.dev/static/img/docs/tutorials/firstemail/photo_by_caleb_woods.jpg"; img.Alt = "Test 2 alt"; img.Attributes.Layout = LayoutType.Fixed; car.Images.Add(img); img = new AmpImage(800, 400); img.Src = "https://placekitten.com/800/400"; img.Alt = "Test alt"; img.Attributes.Layout = LayoutType.Responsive; car.Images.Add(img); img = new AmpImage(800, 400); img.Src = "https://amp.dev/static/img/docs/tutorials/firstemail/photo_by_craig_mclaclan.jpg"; img.Alt = "Test 3 alt"; img.Attributes.Layout = LayoutType.Fill; car.Images.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.Attributes.Width = 600; txt.Attributes.Height = 300; txt.Attributes.Layout = LayoutType.Responsive; txt.MinFontSize = 8; txt.MaxFontSize = 16; txt.Value = "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.ExpandSingleSection = true; Section sec = new Section(); sec.Header = new SectionHeader(SectionHeaderType.h2, "Section 1"); sec.Value = new SectionValue("Content in section 1."); acc.Sections.Add(sec); sec = new Section(); sec.Header = new SectionHeader(SectionHeaderType.h2, "Section 2"); sec.Value = new SectionValue("Content in section 2."); acc.Sections.Add(sec); img = new AmpImage(800, 400); img.Src = "https://placekitten.com/800/400"; img.Alt = "Test alt"; img.Attributes.Layout = LayoutType.Responsive; sec = new Section(); sec.Header = new SectionHeader(SectionHeaderType.h2, "Section 3"); sec.Value = new SectionValue(img); acc.Sections.Add(sec); msg.AddAmpComponent(acc); //add AmpForm component AmpForm form = new AmpForm(); form.Method = FormMethod.Post; form.ActionXhr = "https://example.com/subscribe"; form.Target = FormTarget.Top; FormField field = new FormField("Name:", "text"); field.Name = "name"; field.IsRequired = true; form.Fieldset.Add(field); field = new FormField("Email:", "email"); field.Name = "email"; field.IsRequired = true; form.Fieldset.Add(field); field = new FormField(); field.InputType = "submit"; field.Value = "Subscribe"; form.Fieldset.Add(field); msg.AddAmpComponent(form); msg.Save(dataDir + "AmpTest_1.eml"); MailMessage savedmsg = MailMessage.Load(dataDir + "AmpTest_1.eml"); AmpMessage ampMsg = savedmsg as AmpMessage; if (ampMsg != null) { DateTime dt = new DateTime(2019, 9, 27, 1, 1, 1, DateTimeKind.Utc); AmpTimeago time = new AmpTimeago(dt); time.Attributes.Width = 600; time.Attributes.Height = 300; time.Attributes.Layout = LayoutType.Fixed; time.Locale = "en"; time.Cutoff = 600; ampMsg.AddAmpComponent(time); ampMsg.Save(dataDir + "AmpTest_2.eml"); }
还想要更多吗?如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183)。