示例#1
0
        public async Task SendEmail(EmailAccount emailAccount,
                                    string emailFrom,
                                    string nameFrom,
                                    string emailTo,
                                    string nameTo,
                                    string recipientDisplayName,
                                    string subject,
                                    string body,
                                    string attachmentFilePath = null,
                                    string attachmentFileName = null)
        {
            var message = new MailMessage();

            message.From = new MailAddress(emailFrom, nameFrom);
            message.To.Add(new MailAddress(emailTo, nameTo));
            message.CC.Add(new MailAddress(emailFrom, nameFrom));

            //content
            message.Subject    = subject;
            message.Body       = body;
            message.IsBodyHtml = true;


            if (attachmentFilePath != null && attachmentFileName != null)
            {
                //Get some binary data
                //byte[] data = GetData(attachmentFilePath + @"\" + attachmentFileName);
                byte[] data = System.IO.File.ReadAllBytes(attachmentFilePath + @"\" + attachmentFileName);

                //save the data to a memory stream
                MemoryStream ms = new MemoryStream(data);

                var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
                message.Attachments.Add(new Attachment(ms, attachmentFileName, contentType.ToString()));
            }

            //send email
            using (var smtpClient = new SmtpClient())
            {
                smtpClient.UseDefaultCredentials = emailAccount.UseDefaultCredentials;
                smtpClient.Host        = emailAccount.Host;
                smtpClient.Port        = emailAccount.Port;
                smtpClient.EnableSsl   = emailAccount.EnableSsl;
                smtpClient.Credentials = emailAccount.UseDefaultCredentials ?
                                         CredentialCache.DefaultNetworkCredentials :
                                         new NetworkCredential(emailAccount.Username, emailAccount.Password);
                //smtpClient.Send(message);
                await smtpClient.SendMailAsync(message);
            }
        }
示例#2
0
        public ActionResult SendSingleInvoices()
        {
            var email = new EmailViewModel
            {
                To      = "*****@*****.**",
                Message = "June Invoice"
            };

            //Get user invoice
            var invoiceToSend    = Stream("pdf", 2);
            var attachmentStream = new MemoryStream(invoiceToSend);
            var contentType      = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);

            email.Attach(new Attachment(attachmentStream, "Lindsey Drew Invoice", contentType.ToString()));
            email.Send();

            return(Json("test", JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public ActionResult SendAllInvoices()
        {
            //Get all users
            var AllUsers = db.Customer.ToList();

            int count = 0;

            foreach (var item in AllUsers)
            {
                var email            = new EmailViewModel();
                var InvoiceId        = db.Invoices.Where(x => x.CustomerId == item.Id).FirstOrDefault().Id;
                var invoiceToSend    = Stream("pdf", InvoiceId);
                var attachmentStream = new MemoryStream(invoiceToSend);
                var contentType      = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
                email.To      = item.Email;
                email.Message = "June Invoice";
                email.Attach(new Attachment(attachmentStream, "The Grind Invoice", contentType.ToString()));
                email.Send();

                count++;
            }
            return(Json(count.ToString(), JsonRequestBehavior.AllowGet));
            // return View();
        }