public AccountController(IUserServices userServices, ILogger <AccountController> logger, TemplateEmailSender templateEmailSender, IConfiguration configuration) { this.userServices = userServices; this.logger = logger; this.templateEmailSender = templateEmailSender; this.configuration = configuration; }
private static void Main(string[] args) { // We'll dump the resulting HTML body in a file var file = File.Create(Path.Combine(Environment.CurrentDirectory, "output.html")); var streamWriter = new StreamWriter(file, Encoding.UTF8); var emailSender = new DummyEmailSender(message => streamWriter.Write(message.Body)); // or new DummyEmailSender(Dump) var templateCompiler = new TemplateCompiler(); var xmlSerializer = new CustomXmlSerializer(); var templateDirectory = Path.Combine(Environment.CurrentDirectory, "Templates"); var layoutFile = Path.Combine(templateDirectory, "layout.html"); var xsltFilePath = Path.Combine(templateDirectory, "ActivateAccount.xslt"); var variables = new { FirstName = "Axel", LastName = "Zarate", Username = "******", Ignored = default(object), Logo = "http://www.logotree.com/images/single-logo-design/logo-design-sample-14.jpg", ActivationLink = "http://localhost/Account/Activate/azarate", Benefits = new[] { "Free support", "Great discounts", "Unlimited access" }, IsPremiumUser = true }; var templateEmailSender = new TemplateEmailSender(emailSender, templateCompiler, xmlSerializer) { LayoutFilePath = layoutFile }; templateEmailSender.Send(xsltFilePath, variables, "*****@*****.**", "This is a template test"); // Close the file streamWriter.Dispose(); file.Close(); Console.WriteLine("Ready."); Console.Read(); }
public static MailMessage ProductHtmlMailContent(List <ProductEmailDetails> productsToEmail, AmazonProductAPIContext.Regions region) { //StringWriter stringWriter = new StringWriter(); //using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) //{ // writer.RenderBeginTag(HtmlTextWriterTag.Html);//Html open // writer.RenderBeginTag(HtmlTextWriterTag.Body);//Body open // writer.Write(GetAmazonLogoAndLink(region));//Insert logo and link // writer.RenderBeginTag(HtmlTextWriterTag.Ul);//Unordered list open // foreach(var key in productsToMail.Keys) // { // string product = key; // string link = productsToMail[key]; // var tempWriter = GetLinkForProduct(product, link); // writer.Write(tempWriter); // } // writer.RenderEndTag();//Unorder List close // writer.RenderEndTag();//Body Close // writer.RenderEndTag();//Html Close //} //return stringWriter.ToString(); // We'll dump the resulting HTML body in a file string status = string.Empty;; MailMessage mailMessage = null; try { status = "Entered try bloc"; var templateCompiler = new TemplateCompiler(); var xmlSerializer = new CustomXmlSerializer(); var layoutFileName = "EmailLayout.html"; var xslFileName = "EmailTemplate.xslt"; status = "Getting files from S3;"; var layoutFile = GetFileFromS3(layoutFileName); var xsltFilePath = GetFileFromS3(xslFileName); status = "Got files from S3"; //var layoutFile = Path.Combine(templateDirectory, "EmailLayout.html"); //var xsltFilePath = Path.Combine(templateDirectory, "EmailTemplate.xslt"); var variables = new { ProductsToEmail = productsToEmail.ToArray() }; var templateEmailSender = new TemplateEmailSender(templateCompiler, xmlSerializer) { LayoutFilePath = layoutFile }; status = "Calling construct message"; mailMessage = templateEmailSender.ConstructMailMessage(xsltFilePath, variables); return(mailMessage); // Close the file } catch (Exception ex) { throw new Exception("Send email failed with exception " + status + ex.Message, ex); } }