shawnmclean / Mandrill-dotnet

.NET wrapper for Mandrill
Other
202 stars 107 forks source link

help with list #102

Open dhaneshk opened 9 years ago

dhaneshk commented 9 years ago

Hello, Need help with templates from Mailchimp.

My merge in the body is working fine, but how do i merge value for "LIST:address" in the footer?

it shows up like this

Copyright © 2014 |LIST:COMPANY|, All rights reserved. |LIST:DESCRIPTION|

Our mailing address is:

_|HTML:LIST_ADDRESSHTML|

Thanks Dhanesh

kiquenet commented 9 years ago

How did you tried? can you put source code ?

You can defined merge vars like this, for me doesn't work.

        var images = new[]
                {
                    new image{name = "logo",type = "image/jpg",content = Convert.ToBase64String(i1, 0, i1.Length)},
                    new image{name = "imagen1",type = "image/jpg",content = Convert.ToBase64String(i2, 0, i2.Length)},
                    new image{name = "imagen2",type = "image/jpg",content = Convert.ToBase64String(i3, 0, i3.Length)},
                    new image{name = "contact-button",type = "image/jpg",content = Convert.ToBase64String(i4, 0, i4.Length)},
                    new image{name = "hl",type = "image/gif",content = Convert.ToBase64String(i5, 0, i5.Length)},
                    new image{name = "hr",type = "image/gif",content = Convert.ToBase64String(i6, 0, i6.Length)},
                    new image{name = "spacer",type = "image/gif",content = Convert.ToBase64String(i7, 0, i7.Length)},
                };

        var merge_vars = new List<rcpt_merge_var>();
        merge_vars.Add(new rcpt_merge_var()
        {
            rcpt = "",
            vars = new List<merge_var>() {
               new merge_var() { name = "FNAME", content = "fname|{{first_name}}"},
               new merge_var() { name = "LNAME", content = "lname|You bought {{item_name}} for ${{item_price}}"},
               new merge_var() { name = "EMAIL", content = "email"},
               new merge_var() { name = "DATE:FORMAT", content = "nombre"},
               new merge_var() { name = "CURRENT_YEAR", content = "2015"},
            },
            //fname|{{first_name}}
            //invoicedetails|You bought {{item_name}} for ${{item_price}}.

        });

        var global_vars = new List<merge_var>();

        var templateContent =  new List<TemplateContent> { 
                new TemplateContent { name = "headline-title", content = "Content1" + "<img src=\"cid:logo\"/>" }, 
                new TemplateContent { name = "headline-content", content = "<b>aaaaa</b>" + "<img src=\"cid:logo\"/>" },
                new TemplateContent { name = "headline-content-secondary", content = "<b>zzz</b>" + "<img src=\"cid:logo\"/>" },
                new TemplateContent { name = "section-three-column-one-heading", content = "<b>TITULO</b>"},

                new TemplateContent { name = "section-three-column-one-subheading", content = "<b>2222</b>" + "<img src=\"cid:logo\"/>" },
                new TemplateContent { name = "section-three-column-one-content", content = "<b>1111</b>" + "<img src=\"cid:logo\"/>" },

                new TemplateContent { name = "section-two-image" , content = "<b>TITULO  IMAGEN </b>"},
                new TemplateContent { name = "headline-image" , content = "<b>TITULO IMAGEN</b>"},

                new TemplateContent { name = "quote", content = "Me apasionas tanto" },
                new TemplateContent { name = "section-two-heading", content = "Heading" },
                new TemplateContent { name = "section-two-content", content = "Contenido aqui" },

                new TemplateContent { name = "section-two-content-secondary", content = "contenido secundarioa aqui " },
                new TemplateContent { name = "section-three-column-one-heading", content = "titulo " },
                new TemplateContent { name = "section-three-column-one-subheading", content = "subtitulo" },
                new TemplateContent { name = "section-three-column-one-content", content = "más contenido aqui" },

                new TemplateContent { name = "section-three-column-two-heading", content = "" },
                new TemplateContent { name = "section-three-column-two-subheading", content = "" },
                //new TemplateContent { name = "section-three-column-two-content", content = "" },

                //new TemplateContent { name = "section-three-column-two-contactbutton", content = "xx" },
            };

        // Exercise
        var api = new MandrillApi(ApiKey);
        var resultRender = api.Render(templateExample, templateContent, merge_vars[0].vars);

        //resultRender.

        var result = api.SendMessage(new EmailMessage
        {
            to = new List<EmailAddress> { new EmailAddress { email = toEmail, name = "" } },
            from_email = fromEmail,
            subject = "Mandrill Integration Test",
            images = images,
            //raw_message = resultRender.html,
        }
        , templateExample, templateContent);
dhaneshk commented 9 years ago

here is my code.

   MandrillApi api;
        EmailMessage message;
        GetMailObject(fromAddress, fromName, toName, toAddress, subject, "", out api, out message);

        message.AddRecipientVariable(toAddress, "First", name);
        message.AddRecipientVariable(toAddress, "userName", name);
        message.AddRecipientVariable(toAddress, "challengeName", challengeName);
        message.AddRecipientVariable(toAddress, "challengeEndDate", challengeEndDate);
        message.AddRecipientVariable(toAddress, "numCreditsRefunded", noOfCreditsRefunded);
        message.AddRecipientVariable(toAddress, "ttlAccountCredits", totalAccountCredits);

        var returnvalue = api.SendMessage(message, "Template_01", null);