Esempio n. 1
0
        public bool Send(string targetEmail, Dictionary <string, string> payload, EmailType emailType, byte[] byteArray)
        {
            List <EmailAddress> toEmailAddresses = new List <EmailAddress>();
            //List<TemplateContent> contents = new List<TemplateContent>();

            EmailAddress toEmailAddress = new EmailAddress();

            toEmailAddress.email = targetEmail;

            toEmailAddresses.Add(toEmailAddress);

            if (payload.TryGetValue("cc", out _ccAddress))
            {
                EmailAddress ccEmailAddress = new EmailAddress();
                ccEmailAddress.email = _ccAddress;
                ccEmailAddress.type  = "cc";

                toEmailAddresses.Add(ccEmailAddress);
            }

            EmailMessage emailMessage = new EmailMessage();

            emailMessage.to = toEmailAddresses;
            if (payload.TryGetValue("subject", out _subject))
            {
                emailMessage.subject = _subject;
            }
            emailMessage.attachments = new List <email_attachment>();
            email_attachment mailAttachment = new email_attachment();

            mailAttachment.content = Convert.ToBase64String(byteArray);
            mailAttachment.name    = payload["AttachFileName"];//"PaymentLinkRequest.csv";
            mailAttachment.type    = payload["AttachFileType"];
            ((List <email_attachment>)emailMessage.attachments).Add(mailAttachment);

            emailMessage.merge = true;

            foreach (KeyValuePair <string, string> templateContent in payload)
            {
                emailMessage.AddGlobalVariable(templateContent.Key, templateContent.Value);
            }

            //  emailMessage.from_email = FromAddress;
            //  emailMessage.subject = "Test";
            List <EmailResult> results = _api.SendMessage(emailMessage, GetTemplateName(emailType), null);


            if (results.Count > 0)
            {
                foreach (EmailResult result in results)
                {
                    if (result.Status == EmailResultStatus.Sent || result.Status == EmailResultStatus.Queued)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 2
0
        public async Task <CommonResponse> Send(string recipient, MemoryStream stream)
        {
            var output = new CommonResponse
            {
                Message = "Failed to send PDF to " + recipient,
                Success = false
            };

            try
            {
                var mandrill = new MandrillApi(ConfigurationManager.AppSettings.Get("MandrillApiKey"));

                //Create attachment
                var attachment = new email_attachment()
                {
                    name    = string.Format("Image2PDF_{0}.pdf", DateTime.Now.ToString("MMM-dd-yyyy-hh-mm-ss")),
                    type    = "application/pdf",
                    content = System.Convert.ToBase64String(stream.ToArray())
                };

                //Create email
                var email = new EmailMessage()
                {
                    from_email = "*****@*****.**",
                    from_name  = "Image2PDF",
                    to         = new List <EmailAddress>()
                    {
                        new EmailAddress(recipient)
                    },
                    subject     = "[Image2PDF] Your images have been converted to PDF!",
                    html        = "<p>Thank you for using Image2PDF! Your images have been converted to a PDF document, which you will find attached to this email.</p>",
                    text        = "Thank you for using Image2PDF! Your images have been converted to a PDF document, which you will find attached to this email.",
                    attachments = new List <email_attachment>()
                    {
                        attachment
                    }
                };

                var send = await mandrill.SendMessageAsync(email);

                output.Success = true;
            }
            catch (Exception e)
            {
                output.Message = e.Message;
            }

            return(output);
        }