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); } }
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)); }
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(); }