예제 #1
0
        public string SendEmail(EmailSendModel ReqEmail)
        {
            try
            {
                //EmailSendModel Email = new EmailSendModel();
                //Email.Html = "Body";
                ReqEmail.SenderType = System.Configuration.ConfigurationSettings.AppSettings["SenderType"];
                //Email.Subject = "testing";
                ReqEmail.From = System.Configuration.ConfigurationSettings.AppSettings["Fugue"];
                //ReqEmail.To = "*****@*****.**";
                //ReqEmail.Cc = "*****@*****.**";
                ReqEmail.Cc = "*****@*****.**";
                //ReqEmail.Bcc = "*****@*****.**";
                ReqEmail.Bcc = "*****@*****.**";
                string     Url      = System.Configuration.ConfigurationSettings.AppSettings["MailDomineUrl"];
                string     EmailApi = System.Configuration.ConfigurationSettings.AppSettings["EmailApi"];
                RestClient client   = new RestClient();
                client.BaseUrl = new Uri(Url);
                RestRequest request = new RestRequest(EmailApi, Method.POST);
                request.AddObject(ReqEmail);


                //request.AddBody(ReqEmail);
                var    response   = client.Execute(request);
                string datareturn = Convert.ToString(response.ResponseStatus);

                return(datareturn);
                //return null;
            }
            catch (Exception Ex)
            {
                return(Ex.Message);
            }
        }
예제 #2
0
        public ActionResult SendTestMail(EmailSendModel send)
        {
            send.MailTitle   = "test";
            send.MailContent = "this email is from QRQC test system!";
            var result = EmailHelper.Send(send);

            return(Json(result));
        }
예제 #3
0
        public static EmailSendResult Send(EmailSendModel send)
        {
            var result = new EmailSendResult()
            {
                IsSuccessful = false
            };

            var appSettings = ConfigurationManager.AppSettings;
            var smtpHost    = string.IsNullOrEmpty(appSettings["SmtpHost"]) ? string.Empty : appSettings["SmtpHost"];
            var smtpPort    = string.IsNullOrEmpty(appSettings["SmtpPort"]) ? 25 : Convert.ToInt32(appSettings["SmtpPort"]);
            var account     = string.IsNullOrEmpty(appSettings["EmailAccount"]) ? string.Empty : appSettings["EmailAccount"];
            var password    = string.IsNullOrEmpty(appSettings["EmailPw"]) ? string.Empty : appSettings["EmailPw"];
            //简单邮件传输协议类
            SmtpClient client = new SmtpClient();

            client.Host = smtpHost; //邮件服务器
            client.Port = smtpPort; //smtp主机上的端口号,默认是25.
            client.UseDefaultCredentials = false;
            //if (!string.IsNullOrEmpty(password))
            //{
            //邮件发送方式:通过网络发送到SMTP服务器
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            //凭证,发件人登录邮箱的用户名和密码
            client.Credentials = new NetworkCredential(account, password);
            //}
            client.EnableSsl = false;
            //电子邮件信息类
            MailAddress fromAddress = new MailAddress(account, "QRQC System");         //发件人Email,在邮箱是这样显示的,[发件人:小明<*****@*****.**>;]
            MailAddress toAddress   = new MailAddress(send.MailAddress, string.Empty); //收件人Email,在邮箱是这样显示的, [收件人:小红<*****@*****.**>;]
            MailMessage mailMessage = new MailMessage(fromAddress, toAddress);         //创建一个电子邮件类

            mailMessage.Subject = send.MailTitle;
            //string filePath = Server.MapPath("/index.html");//邮件的内容可以是一个html文本.
            //System.IO.StreamReader read = new System.IO.StreamReader(filePath, System.Text.Encoding.GetEncoding("GB2312"));
            //string mailBody = read.ReadToEnd();
            //read.Close();
            mailMessage.Body = send.MailContent;             //可为html格式文本
            //mailMessage.Body = "邮件的内容";//可为html格式文本
            mailMessage.SubjectEncoding = Encoding.UTF8;     //邮件主题编码
            mailMessage.BodyEncoding    = Encoding.UTF8;     //邮件内容编码
            mailMessage.IsBodyHtml      = true;              //邮件内容是否为html格式
            mailMessage.Priority        = MailPriority.High; //邮件的优先级,有三个值:高(在邮件主题前有一个红色感叹号,表示紧急),低(在邮件主题前有一个蓝色向下箭头,表示缓慢),正常(无显示).
            try
            {
                client.Send(mailMessage);//发送邮件
                result.IsSuccessful = true;
                //client.SendAsync(mailMessage, "ojb");异步方法发送邮件,不会阻塞线程.
            }
            catch (Exception ex)
            {
                result.Message          = ex.Message;
                result.ExceptionMessage = ex.ToString();
            }
            return(result);
        }
예제 #4
0
        public ActionResult ContactAdmin(string username)
        {
            var send = new EmailSendModel()
            {
                MailTitle   = "reset the password",
                MailContent = string.Format("Account:{0} need to reset the password", username)
            };
            var result = EmailHelper.SendToSystemAdmin(send);

            return(Json(result));
        }
        public async Task SendEmailAsync(EmailSendModel email)
        {
            var emailMessage = BuildEmail(email);
            var apiKey       = sendGridConfig.ApiKey;
            var client       = new SendGridClient(apiKey);
            var response     = await client.SendEmailAsync(emailMessage);

            if (!response.StatusCode.Equals(HttpStatusCode.Accepted))
            {
                throw new HttpRequestException($"Could not send email. HttpStatusCode: {response.StatusCode}, Error: {response.Body}");
            }
        }
예제 #6
0
        public IActionResult SendMail(EmailSendModel model)
        {
            var emails = model.SendToEmails.Split(',');

            foreach (var email in emails)
            {
                this.emailSender.SendEmailAsync(email.Trim(), model.EmailTitle, model.EmailMessage);
                System.Threading.Thread.Sleep(300); // todo: use queue
            }

            return(this.RedirectToAction("index"));
        }
        public IActionResult Send([FromBody] EmailSendModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var modelErrors = ModelState
                                      .Values
                                      .SelectMany(v => v.Errors)
                                      .Select(er => er.ErrorMessage)
                                      .Aggregate((aggregatedValue, nextValue) =>
                                                 aggregatedValue += " " + nextValue);
                    return(StatusCode(
                               StatusCodes.Status500InternalServerError,
                               new { success = false, message = modelErrors }));
                }

                var emailServiceOptions = new EmailServiceOptions
                {
                    FromEmail              = model.Email,
                    FromName               = model.Name,
                    To                     = _to,
                    Subject                = _subject,
                    TextFormat             = TextFormat.Html,
                    Body                   = model.Message,
                    AuthenticationLogin    = _emailLogin,
                    AuthenticationPassword = _emailPassword,
                    Host                   = _host,
                    Port                   = _port,
                    UseSSL                 = _useSSL
                };

                var emailService = new EmailService(emailServiceOptions);
                var sendResult   = emailService.Send();

                if (sendResult.Success)
                {
                    return(Ok(new { success = true, message = sendResult.Message }));
                }
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  new { success = false, message = sendResult.Message }));
            }
            catch (Exception exception)
            {
                return(StatusCode(
                           StatusCodes.Status500InternalServerError,
                           new { success = false, message = exception.Message }));
            }
        }
예제 #8
0
        public static EmailSendResult SendToSystemAdmin(EmailSendModel send)
        {
            var result = new EmailSendResult()
            {
                IsSuccessful = false
            };
            var appSettings = ConfigurationManager.AppSettings;

            send.MailAddress = string.IsNullOrEmpty(appSettings["SystemAdminEmail"]) ? string.Empty : appSettings["SystemAdminEmail"];
            if (string.IsNullOrEmpty(send.MailAddress))
            {
                result.Message = "please config the System Admin Email";
                return(result);
            }
            result = Send(send);
            return(result);
        }
        private SendGridMessage BuildEmail(EmailSendModel emailData)
        {
            var senderEmail     = BuildEmailAddress(emailData.SenderEmail, emailData.SenderName);
            var receiverEmail   = BuildEmailAddress(emailData.ReceiverEmail, emailData.ReceiverName);
            var mailTextContent = emailData.Message;
            var emailMessage    = MailHelper.CreateSingleEmail(
                senderEmail,
                receiverEmail,
                emailData.Subject,
                mailTextContent,
                null);

            emailMessage.TrackingSettings = CreateTrackingSettings();
            AddSubstitutionsToEmailMessage(emailMessage, emailData.Substitutions);

            return(emailMessage);
        }
        public ActionResult SendFileByEmail(EmailSendModel emailModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var messageAttachment = new FileModel(_fileservice.GetFileWhithContent(emailModel.FileId), true);
                    string from = "**********";
                    using (MailMessage mail = new MailMessage(from, emailModel.RecipientsEmail))
                    using (var stream = new MemoryStream(messageAttachment.FileContent))
                    {
                        mail.Subject = emailModel.Subject;
                        mail.Attachments.Add(new Attachment(stream, messageAttachment.FileName, messageAttachment.ContentType));
                        NetworkCredential networkCredential = new NetworkCredential(from, "***********");
                        SmtpClient smtp = new SmtpClient();
                        smtp.Host = "smtp.gmail.com";
                        smtp.EnableSsl = true;
                        smtp.UseDefaultCredentials = false;
                        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                        smtp.Credentials = networkCredential;
                        smtp.Port = 587;
                        smtp.Send(mail);
                        return Json(string.Empty, JsonRequestBehavior.AllowGet);
                    }
                }
                catch
                {
                    Response.StatusCode = 400;
                    var error = new ErrorModel();
                    error.ErrorID = 123;
                    error.Message = "Mail is invalid";
                    return Json(error, JsonRequestBehavior.AllowGet);
                }
            }

            else
            {
                Response.StatusCode = 400; // Replace .AddHeader
                var error = new ErrorModel();  // Create class Error() w/ prop
                error.ErrorID = 2;
                error.Message = "Something went wrong!";
                return Json(error, JsonRequestBehavior.AllowGet);
            }
        }
예제 #11
0
        public EmailSendModel GetTodayData()
        {
            var emailSendModel = new EmailSendModel();

            using (var db = new MangningXssDBEntities())
            {
                var todayTime = DateTime.UtcNow.AddHours(-24);

                var dayOfWeek = (int)DateTime.Now.DayOfWeek;

                if (dayOfWeek == 0)
                {
                    dayOfWeek = 7;
                }

                var dayOfWeekTime = DateTime.Today.AddDays(-(dayOfWeek - 1));

                var query = from a in db.ZhaopinResume
                            join b in db.ZhaopinUser on a.UserId equals b.Id
                            where !string.IsNullOrEmpty(b.Cellphone) && a.UpdateTime > todayTime
                            select a;

                emailSendModel.ResumeCount = query.Count();

                emailSendModel.DeliverCount = query.Count(w => w.Source.Contains("Deliver"));

                var time = DateTime.Today.AddDays(-1);

                emailSendModel.UploadCount = db.ZhaopinResumeUploadLog.Count(w => w.UploadTime > time && !string.IsNullOrEmpty(w.Tag));

                emailSendModel.CreateCount = db.ZhaopinResumeUploadLog.Count(w => w.UploadTime > time && w.Tag == "C");

                emailSendModel.UpdateCount = db.ZhaopinResumeUploadLog.Count(w => w.UploadTime > time && w.Tag != "C" && !string.IsNullOrEmpty(w.Tag));

                emailSendModel.SurplusCount = db.ZhaopinResume.Count(w => w.Flag == 14);

                emailSendModel.NoJsonCount = db.ZhaopinResume.Count(w => w.UpdateTime > todayTime && w.Flag == 2);

                emailSendModel.AvgCreateCount = db.ZhaopinResumeUploadLog.Count(w => w.UploadTime > dayOfWeekTime && w.Tag == "C") / (dayOfWeek - 1);
            }

            return(emailSendModel);
        }
        public async Task <IActionResult> SendAsync([FromBody] EmailSendModel model)
        {
            foreach (var email in model.Emails)
            {
                if (!email.IsValidEmail())
                {
                    return(BadRequest(ErrorResponse.Create("Some of the emails is not valid")));
                }
            }

            bool result = await _emailService.SendAsync(model.InvoiceId, model.CheckoutUrl, model.Emails.Select(x => x.Trim()).ToList());

            if (result)
            {
                return(NoContent());
            }

            return(BadRequest(ErrorResponse.Create(PayInvoicePortalApiErrorCodes.UnexpectedError)));
        }
예제 #13
0
        public async Task <ActionResult> SendEmail(EmailSendModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var body    = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>";
                    var message = new MailMessage();
                    message.To.Add(new MailAddress("*****@*****.**"));     // replace with valid value
                    message.From       = new MailAddress(model.SenderEmail); // replace with valid value
                    message.Subject    = "Test Email From ASP.NET MVC";
                    message.Body       = string.Format(body, model.SenderName, model.SenderEmail, model.Message);
                    message.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        //var credential = new NetworkCredential
                        //{
                        //    UserName = "******",  // replace with valid value
                        //    Password = "******"  // replace with valid value
                        //};
                        // This credentials is set in web.config file...

                        //smtp.Credentials = credential;
                        //smtp.Host = "smtp.emailsrvr.com";
                        //smtp.Port = 587;
                        //smtp.EnableSsl = false;

                        await smtp.SendMailAsync(message);

                        return(RedirectToAction("Sent"));
                    }
                }
                return(View(model));
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// Sends email
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool EmailSend(EmailSendModel model)
        {
            SmtpClient client = new SmtpClient
            {
                DeliveryMethod = SmtpDeliveryMethod.Network,
                EnableSsl      = true,
                Host           = "smtp.gmail.com",
                Port           = 587
            };

            var credentials = new NetworkCredential("*****@*****.**", "Abcd!123");

            client.UseDefaultCredentials = false;
            client.Credentials           = credentials;

            var mailMessage =
                new MailMessage {
                From = new MailAddress("*****@*****.**", model.DisplayName)
            };

            mailMessage.To.Add(model.To);
            mailMessage.Subject    = model.Subject;
            mailMessage.IsBodyHtml = true;
            mailMessage.Body       = model.Body;

            try
            {
                client.Send(mailMessage);
                return(true);
            }
            catch (Exception)
            {
            }

            return(false);
        }
예제 #15
0
        public ActionResult EmailCreate(EmailSendModel data)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            using (THUONGMAIDIENTUEntities db = new THUONGMAIDIENTUEntities())
            {
                EMAIL e = new EMAIL();
                e.EmailTitle   = data.title;
                e.EmailContent = data.content;
                db.EMAILs.Add(e);
                db.SaveChanges();
                foreach (var customer in db.CUSTOMERs.ToList())
                {
                    CUSTOMER_EMAIL c = new CUSTOMER_EMAIL();
                    c.IdCustomer = customer.IdCustomer;

                    e.CUSTOMER_EMAIL.Add(c);
                    try
                    {
                        SendMail.Send(data.title, data.content, customer, e.IdEmail);
                        c.IsRead = false;
                    }
                    catch (Exception ex)
                    {
                    }
                }
                db.SaveChanges();
            }



            return(RedirectToAction("Email"));
        }
예제 #16
0
        public string TEEscalationMails()
        {
            DateTime Today = System.DateTime.Today;
            int      cnt   = 0;
            List <TEComplainceModel> teissueresult        = Mgr.GetIssues().Where(x => !IssuesStatus.EscalationStatus.Contains(x.Status)).ToList();
            List <TEComplainceModel> escalatedissueresult = new List <TEComplainceModel>();
            List <TEEmpBasicInfo>    ManagerList          = new List <TEEmpBasicInfo>();

            foreach (TEComplainceModel item in teissueresult)
            {
                DateTime          EscalationDate = System.DateTime.Today;
                TEQueueDepartment Escalation     = db.TEQueueDepartments.Where(x => x.QueueID == item.QueueID && x.CategoryID == item.CategoryID).FirstOrDefault();
                try
                {
                    if (Escalation != null)
                    {
                        if (item.PriorityName == "Normal")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLAMedium));
                            item.issuePriority = 3;
                        }
                        else if (item.PriorityName == "Critical")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLAHigh));
                            item.issuePriority = 2;
                        }
                        else if (item.PriorityName == "Emergency")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLACritical));
                            item.issuePriority = 1;
                        }
                    }
                    if (Today > EscalationDate)
                    {
                        TimeSpan difference = Today - item.CreatedOn.Date;
                        item.Age = Convert.ToInt32(difference.TotalDays);
                        UserProfile Assige = new UserProfile();
                        Assige = db.UserProfiles.Where(x => x.UserId == item.AssignedTo).FirstOrDefault();
                        string         AssigneUserId = Convert.ToString(item.AssignedTo);
                        TEEmpBasicInfo AssigneBasic  = null;
                        if (Assige != null)
                        {
                            AssigneBasic = new TEEmpBasicInfo();
                            AssigneBasic = db.TEEmpBasicInfoes.Where(x => x.UserId == Assige.UserName).FirstOrDefault();
                        }
                        TEEmpAssignmentDetail AssigneDetails = null;
                        if (AssigneBasic != null)
                        {
                            AssigneDetails = new TEEmpAssignmentDetail();
                            AssigneDetails = db.TEEmpAssignmentDetails.Where(x => x.TEEmpBasicInfo == AssigneBasic.Uniqueid && x.IsDeleted == false && x.Status == "Active").FirstOrDefault();
                        }
                        if (AssigneDetails != null)
                        {
                            TEEmpBasicInfo ManagerBasic = db.TEEmpBasicInfoes.Find(AssigneDetails.TEEmpBasicInfo_ReportingTo);
                            if (ManagerBasic != null)
                            {
                                item.AssigneManagerId   = ManagerBasic.Uniqueid;
                                item.AssigneManagerName = ManagerBasic.FirstName + " " + ManagerBasic.LastName;
                                ManagerList.Add(ManagerBasic);
                            }
                        }
                        escalatedissueresult.Add(item);
                    }
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }
            }
            ManagerList = ManagerList.Distinct().Where(a => a.OfficialEmail != null).ToList();
            foreach (TEEmpBasicInfo basicitem in ManagerList)
            {
                EmailSendModel SendDetails = new EmailSendModel();
                var            potemp1     = db.TEEmailTemplates.Where(x => x.ModuleName == "TicketEscalation").FirstOrDefault();
                string         bodytag     = "";

                foreach (TEComplainceModel item in escalatedissueresult.OrderBy(x => x.issuePriority).ThenByDescending(x => x.Age).Where(x => x.AssigneManagerId == basicitem.Uniqueid).ToList())
                {
                    try
                    {
                        bodytag = bodytag + "<tr style='font-size: 9pt !important;'><td style='text-align:right;'>@ticket number@</td><td>@Category@</td><td>@Requestor Name@</td><td>@Requestor Date@</td><td>@Priority@</td><td>@Resolution Date@</td><td style='text-align:right;'>@Age@</td><td>@Technician name@</td><td>@Description@</td></tr>";
                        bodytag = bodytag.Replace("@ticket number@", item.Uniqueid.ToString());
                        bodytag = bodytag.Replace("@Requestor Name@", (item.RaisedByName));
                        bodytag = bodytag.Replace("@Requestor Date@", item.CreatedOn == null ? "" : String.Format("{0:dd-MM-yyyy}", item.CreatedOn));
                        bodytag = bodytag.Replace("@Manager Name@", item.AssigneManagerName);
                        bodytag = bodytag.Replace("@Category@", item.Categoryname);
                        bodytag = bodytag.Replace("@Priority@", item.PriorityName);
                        bodytag = bodytag.Replace("@Resolution Date@", item.Estimated_Close_date == null ? "" : String.Format("{0:dd-MM-yyyy}", item.Estimated_Close_date));
                        bodytag = bodytag.Replace("@Description@", item.Descritpion);
                        bodytag = bodytag.Replace("@Technician name@", item.AssignToName);
                        bodytag = bodytag.Replace("@Age@", item.Age.ToString());
                    }
                    catch (Exception ex)
                    {
                        return(ex.Message);
                    }
                }
                SendDetails.Subject = potemp1.Subject;
                SendDetails.Html    = potemp1.EmailTemplate.Replace("@bodytag@", bodytag);
                SendDetails.Html    = SendDetails.Html.Replace("@Manager Name@", basicitem.FirstName + " " + basicitem.LastName);
                SendDetails.To      = basicitem.OfficialEmail;
                EmailMgr.SendEmail(SendDetails);
            }
            return("Success");
        }
 /// <summary>
 /// Sends Push
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool PushSend(EmailSendModel model)
 {
     throw new System.NotImplementedException();
 }