예제 #1
0
        private async Task <Response> SendEvaluatorReminderEmail(EmailDetails emailDetails)
        {
            var response    = new Response();
            var emailEntity = new EmailEntity();

            if (emailDetails.RequestIds == null || !emailDetails.RequestIds.Any())
            {
                return(response);
            }
            var requestDetails = (await _requestRepository.GetRequestDetailsForEmailAsync(emailDetails.RequestIds));

            foreach (var requestDetail in requestDetails)
            {
                emailEntity.Subject      = "Yorbit: Evaluation reminder";
                emailEntity.Body         = ReadEmailTemplate("EvaluatorReminder.html");
                emailEntity.Body         = emailEntity.Body.Replace("{EvaluatorName}", requestDetail.EvaluatorName);
                emailEntity.Body         = emailEntity.Body.Replace("{CourseName}", requestDetail.CourseName);
                emailEntity.Body         = emailEntity.Body.Replace("{YorbitCourseId}", requestDetail.YorbitCourseId);
                emailEntity.ToRecipients = new List <string> {
                    requestDetail.EvaluatorEmail
                };
                await _emailHelper.SendMail(emailEntity);
            }
            return(response);
        }
예제 #2
0
        private async Task <Response> SendOPMPublishResultEmail(EmailDetails emailDetails)
        {
            var response    = new Response();
            var emailEntity = new EmailEntity();

            if (emailDetails.RequestIds == null || !emailDetails.RequestIds.Any())
            {
                return(response);
            }
            var requestDetails = await _requestRepository.GetRequestDetailsForEmailAsync(emailDetails.RequestIds);

            foreach (var request in requestDetails)
            {
                emailEntity.Subject = "Yorbit: Assignment result published";
                emailEntity.Body    = ReadEmailTemplate("OPMPublishResult.html");
                emailEntity.Body    = emailEntity.Body.Replace("{LearnerName}", request.LearnerName);
                emailEntity.Body    = emailEntity.Body.Replace("{CourseName}", request.CourseName);
                emailEntity.Body    = emailEntity.Body.Replace("{Result}", requestResultCodes.GetStatusName(request.ResultId));
                emailEntity.Body    = emailEntity.Body.Replace("{Score}", request.Score == null ? "-": request.Score.ToString());
                emailEntity.Body    = emailEntity.Body.Replace("{Comments}", string.IsNullOrEmpty(request.Comments) ? "-" : request.Comments.Trim());
                emailEntity.Body    = emailEntity.Body.Replace("{ScoreCardFile}",
                                                               string.IsNullOrEmpty(request.ScoreCardFile)
                    ? "-"
                    : "Click <a href=" + await _blobHelper.GetBlobUriAsync("assignments", request.ScoreCardFile) + ">&nbsp;<span><b>here</b></span></a>");
                emailEntity.ToRecipients = new List <string> {
                    request.LearnerEmail
                };
                emailEntity.CCRecipients = new List <string> {
                    _learningOPMEmail
                };
                await _emailHelper.SendMail(emailEntity);
            }
            return(response);
        }
예제 #3
0
        private async Task <Response> SendEvaluatorErrorFileUploadEmail(EmailDetails emailDetails)
        {
            var response    = new Response();
            var emailEntity = new EmailEntity();

            if (emailDetails.RequestIds == null || !emailDetails.RequestIds.Any())
            {
                return(response);
            }
            var requestDetails = (await _requestRepository.GetRequestDetailsForEmailAsync(emailDetails.RequestIds))?.FirstOrDefault();

            emailEntity.Subject      = "Yorbit: Error found in assignment";
            emailEntity.Body         = ReadEmailTemplate("EvaluatorErrorFileUpload.html");
            emailEntity.Body         = emailEntity.Body.Replace("{LearnerName}", requestDetails.LearnerName);
            emailEntity.Body         = emailEntity.Body.Replace("{CourseName}", requestDetails.CourseName);
            emailEntity.Body         = emailEntity.Body.Replace("{Comments}", string.IsNullOrEmpty(requestDetails.Comments) ? "-" : requestDetails.Comments.Trim());
            emailEntity.Body         = emailEntity.Body.Replace("{ErrorFile}", string.IsNullOrEmpty(requestDetails.ErrorFile) ? "-" : await _blobHelper.GetBlobUriAsync("assignments", requestDetails.ErrorFile));
            emailEntity.ToRecipients = new List <string> {
                requestDetails.LearnerEmail
            };
            emailEntity.CCRecipients = new List <string> {
                _learningOPMEmail
            };
            await _emailHelper.SendMail(emailEntity);

            return(response);
        }
        public async Task <bool> SendEmail(EmailDetails email,
                                           TelemetryClient telelemtry,
                                           CancellationToken cancellationToken)
        {
            try
            {
                var client = new SendGridClient(ApiKey);
                var from   = new EmailAddress(email.Sender);

                var to = email.Recipients
                         .Select(x => new EmailAddress(x))
                         .ToList();

                var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from,
                                                                           to,
                                                                           email.Subject,
                                                                           plainTextContent: email.Body, // currently not supporting plain text
                                                                           htmlContent: email.Body);

                var response = await client.SendEmailAsync(msg, cancellationToken);

                return(response.StatusCode == System.Net.HttpStatusCode.Accepted);
            }
            catch (Exception e)
            {
                telelemtry.TrackException(e,
                                          new Dictionary <string, string> {
                    [this.GetType().Name] = email.Subject
                });
                return(false);
            }
        }
        public async Task <EmailResponse> SendVerificationEmailAsync(EmailDetails details, string title, string content1, string buttonText, string buttonUrl)
        {
            var templateText = default(string);

            // Read the general template from file
            // TODO: Replace with IoC Flat data provider

            var assembly = AppDomain.CurrentDomain.GetAssemblies().SingleOrDefault(assem => assem.GetName().Name == "Metsi.Web");

            string[] names = assembly.GetManifestResourceNames();

            var stream =
                assembly.GetManifestResourceStream("Metsi.Web.EmailTemplates.VerificationTemplate.htm");

            using (var reader = new StreamReader(stream, Encoding.UTF8))
            {
                // Read file contents
                templateText = await reader.ReadToEndAsync();
            }

            // Replace special values with those inside the template
            templateText = templateText.Replace("--Title--", title)
                           .Replace("--Content1--", content1)
                           .Replace("--ButtonText--", buttonText)
                           .Replace("--ButtonUrl--", buttonUrl);

            // Set the details content to this template content
            details.Content = templateText;

            // Send email
            return(await _sender.SendEmailAsync(details));
        }
예제 #6
0
        public void Send(EmailDetails details)
        {
            try
            {
                var          fromAddress  = new MailAddress(details.emailFromAddress, details.emailFromName);
                var          toAddress    = new MailAddress(details.emailToAddress, details.emailToName);
                const string fromPassword = "******"; // read it from config

                var smtp = new SmtpClient
                {
                    Host                  = "smtp.gmail.com",
                    Port                  = 587,
                    EnableSsl             = true,
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                };
                using (var message = new MailMessage(fromAddress, toAddress)
                {
                    Subject = details.Subject,
                    Body = details.Body
                })
                {
                    smtp.Send(message);
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #7
0
        public async Task SendToBackupEmailAsync(EmailDetails emailDetails)
        {
            var email = new MimeMessage();

            email.Sender = MailboxAddress.Parse(_backupemailSettings.Mail);
            email.To.Add(MailboxAddress.Parse(emailDetails.ToEmail));
            email.Subject = emailDetails.Subject;
            var builder = new BodyBuilder();

            if (emailDetails.Attachments != null)
            {
                byte[] fileBytes;
                foreach (var file in emailDetails.Attachments)
                {
                    if (file.Length > 0)
                    {
                        using (var ms = new MemoryStream())
                        {
                            file.CopyTo(ms);
                            fileBytes = ms.ToArray();
                        }
                        builder.Attachments.Add(file.FileName, fileBytes, ContentType.Parse(file.ContentType));
                    }
                }
            }
            builder.HtmlBody = emailDetails.Body;
            email.Body       = builder.ToMessageBody();
            using var smtp   = new SmtpClient();
            smtp.Connect(_backupemailSettings.Host, _backupemailSettings.Port, SecureSocketOptions.StartTls);
            smtp.AuthenticationMechanisms.Remove("XOAUTH2");
            smtp.Authenticate(_backupemailSettings.Mail, _backupemailSettings.Password);
            await smtp.SendAsync(email);

            smtp.Disconnect(true);
        }
예제 #8
0
        private async Task <Response> SendLearnerReminderEmail(EmailDetails emailDetails)
        {
            var response    = new Response();
            var emailEntity = new EmailEntity();

            if (emailDetails.RequestIds == null || !emailDetails.RequestIds.Any())
            {
                return(response);
            }
            var requestDetails = (await _requestRepository.GetRequestDetailsForEmailAsync(emailDetails.RequestIds));

            foreach (var requestDetail in requestDetails)
            {
                emailEntity.Subject      = "Yorbit: Assignment submission reminder";
                emailEntity.Body         = ReadEmailTemplate("LearnerReminder.html");
                emailEntity.Body         = emailEntity.Body.Replace("{LearnerName}", requestDetail.LearnerName);
                emailEntity.Body         = emailEntity.Body.Replace("{CourseName}", requestDetail.CourseName);
                emailEntity.Body         = emailEntity.Body.Replace("{AssignmentDueDate}", requestDetail.AssignmentDueDate.ToString("dd-MM-yyyy"));
                emailEntity.ToRecipients = new List <string> {
                    requestDetail.LearnerEmail
                };
                await _emailHelper.SendMail(emailEntity);
            }
            return(response);
        }
예제 #9
0
        public ActionResult Contato(EmailDetails emailDetails)
        {
            if (!ModelState.IsValid)
            {
                PopulateSubjects();
                return(View());
            }

            //MailMessage mailMessage = new MailMessage();
            //mailMessage.From =   emailDetails.EmailAddress;
            //mailMessage.To = "*****@*****.**";
            //mailMessage.Subject = emailDetails.SelectedSubject;
            //mailMessage.Body =emailDetails.Message;
            //SendEmail(mailMessage);

            MailMessage message = new MailMessage();

            message.To.Add(emailDetails.EmailAddress);
            message.IsBodyHtml = true;
            message.Subject    = emailDetails.SelectedSubject;
            message.Body       = emailDetails.Message;
            System.Net.Mail.SmtpClient smtp = new SmtpClient();
            smtp.Send(message);


            return(RedirectToAction("Index"));
        }
예제 #10
0
        //-----------------------------------------------------------------------------
        public void SendMessage(MailAddress toAddress, MailAddress fromAddress, 
                                string subject, string msg, List<Attachment> at,
                                EmailDetails state)
        {
            try
            {
                state.mMessage = new MailMessage(fromAddress, toAddress);
                if (at != null && at.Count > 0)
                {
                    foreach(Attachment a in at)
                    {
                        state.mMessage.Attachments.Add(a);
                    }
                }
                state.mMessage.Body = msg;
                state.mMessage.BodyEncoding = System.Text.Encoding.UTF8;
                state.mMessage.Subject = subject;
                state.mMessage.SubjectEncoding = System.Text.Encoding.UTF8;

                mailClient.SendAsync(state.mMessage, state);
            }
            catch (Exception e)
            {
                state.RaiseException(e);
            }
        }
예제 #11
0
    protected void btnSendMail_Click(object sender, EventArgs e)
    {
        if (!Page.IsValid)
        {
            return;
        }
        try
        {
            IncentiveBusiness b       = new IncentiveBusiness();
            EmailDetails      details = new EmailDetails();
            SendMailObject    obj     = new SendMailObject();
            details.FromEmail = ConfigurationManager.AppSettings["FromAddress"].ToString();
            string finance_emailid = Session["emailId"].ToString();

            string employeeid  = Session["MemberId"].ToString();
            string referenceid = Session["referenceid"].ToString();
            string toemail     = txtTo.Text;
            string ccmail      = txtCC.Text;
            details.ToEmail = toemail.ToString();
            details.CCEmail = ccmail.ToString();
            details.Type    = referenceid;
            details.Id      = "";
            details.Module  = Session["transctiontype"].ToString();

            string FooterText = ConfigurationManager.AppSettings["FooterText"].ToString();
            details.EmailSubject = txtSubject.Text;
            details.MsgBody      = "<span style=\"font-size: 10pt; color: #3300cc; font-family: Verdana\"> <br>" +
                                   "<b> '" + txtMsgContent.Text + "' <br> " +
                                   "<br>" + "<br>" + "<br>" + "<br>" + FooterText +
                                   " </b><br><b> </b></span>";

            bool resultv = obj.InsertIntoEmailQueue(details);
            if (resultv == true)
            {
                bool flag = b.UpdateUtilizationMailFlag(employeeid, referenceid, Session["transctiontype"].ToString());
                Gridview.DataBind();
                Gridview.Visible      = true;
                PanelSendMail.Visible = false;
                txtTo.Text            = "";
                txtCC.Text            = "";
                txtSubject.Text       = "";
                txtMsgContent.Text    = "";
                string CloseWindow1 = "alert('Mail Sent successfully')";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);
            }
            else
            {
                PanelSendMail.Visible = true;
                string CloseWindow1 = "alert('Problem while sending mail')";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);
            }
        }


        catch (Exception ex)
        {
            log.Error(ex.StackTrace);
            log.Error(ex.Message);
        }
    }
예제 #12
0
        private bool SendViaSandBox(EmailDetails email)
        {
            var client = new RestClient
            {
                BaseUrl       = new Uri("https://api.mailgun.net/v3"),
                Authenticator = new HttpBasicAuthenticator("api", ApiKey)
            };

            var request = new RestRequest();

            request.AddParameter("domain", SandboxDomain, ParameterType.UrlSegment);
            request.Resource = "{domain}/messages";
            request.AddParameter("from", "Mailgun Sandbox <*****@*****.**>");
            request.AddParameter("subject", email.Subject);
            request.AddParameter("text", email.Body);

            foreach (var recipient in email.Recipients)
            {
                request.AddParameter("to", recipient);
            }

            request.Method = Method.POST;
            var res = client.Execute(request);

            return(res.IsSuccessful);
        }
예제 #13
0
        public void SendMail_Single_Success()
        {
            try
            {
                MailSenderSettings senderSettings = new MailSenderSettings();
                senderSettings.EnableSsl     = Boolean.Parse(ConfigurationManager.AppSettings["EnableSsl"]);
                senderSettings.Port          = Int32.Parse(ConfigurationManager.AppSettings["Port"]);
                senderSettings.SenderAddress = ConfigurationManager.AppSettings["SenderAddress"];
                senderSettings.SenderPwd     = ConfigurationManager.AppSettings["SenderPwd"];
                senderSettings.SenderTitle   = ConfigurationManager.AppSettings["SenderTitle"];
                senderSettings.SmtpAddress   = ConfigurationManager.AppSettings["SmtpAddress"];

                MailSender mailSender = new MailSender();
                mailSender.Init(senderSettings);

                // preparing mail details
                EmailDetails emailDetails = new EmailDetails();
                emailDetails.AddressTo = ConfigurationManager.AppSettings["AddressTo"];
                emailDetails.Subject   = ConfigurationManager.AppSettings["Subject"];
                emailDetails.Body      = string.Format(ConfigurationManager.AppSettings["Body"], DateTime.UtcNow.ToString());

                var emails = new List <EmailDetails>();
                emails.Add(emailDetails);

                mailSender.Send(emails);

                Assert.IsTrue(true, "Mail sent - check inbox");
            }
            catch (Exception ex)
            {
                Assert.Fail(string.Format("Sending email failed: {0}", ex.Message));
            }
        }
예제 #14
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
            [Queue("emails", Connection = "AzureWebJobsStorage")] IAsyncCollector <EmailDetails> emailsQueue,
            ILogger log
            )
        {
            var eventDetails = await req.Content.ReadAsAsync <EventDetails>();

            foreach (var invitee in eventDetails.Invitees)
            {
                log.LogInformation($"Inviting {invitee.Name} ({invitee.Email})");
                var accessCode   = Guid.NewGuid().ToString("n");
                var emailDetails = new EmailDetails
                {
                    EventDateAndTime = eventDetails.EventDateAndTime,
                    Location         = eventDetails.Location,
                    Name             = invitee.Name,
                    Email            = invitee.Email,
                    ResponseUrl      = $"https://whosplayingsportfuncs.azurewebsites.net"
                };

                await emailsQueue.AddAsync(emailDetails);
            }

            return(req.CreateResponse(System.Net.HttpStatusCode.OK));
        }
예제 #15
0
        public ILogger SendEmail(string message)
        {
            var emailDetails = new EmailDetails("*****@*****.**", new[] { "*****@*****.**", "*****@*****.**", "*****@*****.**" });

            emailProcessor.SendEmail(emailDetails, message, AttemptsFile);
            return(logger);
        }
예제 #16
0
    private void SendMail()
    {
        EmailDetails details = new EmailDetails();

        try
        {
            bool resultv = false;

            IncentiveBusiness b   = new IncentiveBusiness();
            SendMailObject    obj = new SendMailObject();

            string memberid = txtMemberId.Text.Trim();
            string emailid  = b.SelectAuthorEmailId(memberid);
            string point    = txtPointsAwarded.Text;
            string year     = DdlYear.SelectedValue;

            details.FromEmail = ConfigurationManager.AppSettings["FromAddress"].ToString();

            details.ToEmail      = emailid;
            details.Module       = "APA";
            details.EmailSubject = "Additional Point Award";
            details.Type         = "";
            details.Id           = "";
            string FooterText = ConfigurationManager.AppSettings["FooterText"].ToString();
            details.MsgBody = "<span style=\"font-size: 10pt; color: #3300cc; font-family: Verdana\"><h4>Dear Sir/Madam,</h4> <br>" +
                              "<p>An additional incentive point for the year '" + year + "' is awarded '" + point + "' for more than 6 publication.</p>" + "<br>" + "<br>" + FooterText +
                              " </b><br><b> </b></span>";


            resultv = obj.InsertIntoEmailQueue(details);



            if (resultv == true)
            {
                string CloseWindow1 = "alert('Mail Sent successfully')";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);

                btnSave.Enabled = false;
            }
            else
            {
                string CloseWindow1 = "alert('Problem while sending mail')";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);

                btnSave.Enabled = false;
            }
        }
        catch (Exception ex)
        {
            string CloseWindow1 = "alert('Problem while sending mail')";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);
            log.Error(ex.Message);
            log.Error(ex.StackTrace);

            btnSave.Enabled = false;
        }
    }
예제 #17
0
        public async Task SendEmail(EmailDetails emailDetails)
        {
            //throw new ApplicationException("da ist was schiefgegangen");

            Console.WriteLine($"*** Server 1 - Sending EMail to {emailDetails.To}, content: {emailDetails.Body}");
            await Task.Delay(5000);

            Console.WriteLine("*** Server 1 - EMail sent to " + emailDetails.To);
        }
예제 #18
0
        public Task SendAsync(EmailDetails email)
        {
            var client = CreateSmtpClient();
            var mail   = CreateMailMessage(email.MailTo, email.MailFrom, email.Subject, email.Body);

            Attach(mail, email.Attachments);

            client.SendAsync(mail, null);
            return(Task.CompletedTask);
        }
예제 #19
0
        /*
         * Method to get open sections
         */

        public UpdateEmailResponse UpdateEmail(UpdateEmailRequest updateEmailRequest)
        {
            var login = _ucOnlinePortalContext.LoginInfos.Where(x => x.StudId == updateEmailRequest.id_number).FirstOrDefault();

            if (login == null)
            {
                return(new UpdateEmailResponse {
                    success = 0
                });
            }
            else
            {
                var loginTemp = _ucOnlinePortalContext.LoginInfos.Where(x => x.Email == updateEmailRequest.email).FirstOrDefault();

                if (loginTemp != null)
                {
                    var checkIfEmailIsOwner = _ucOnlinePortalContext.LoginInfos.Where(x => x.Email == updateEmailRequest.email && x.StudId == updateEmailRequest.id_number).FirstOrDefault();

                    if (checkIfEmailIsOwner == null)
                    {
                        return(new UpdateEmailResponse {
                            success = 0
                        });
                    }
                }

                //Generate random number for Token
                Random generator = new Random();
                String token     = generator.Next(0, 1000000).ToString("D6");

                var Tk = Task.Run(() =>
                {
                    var emailDetails = new EmailDetails
                    {
                        To = new EmailAddress {
                            Address = updateEmailRequest.email, Name = login.FirstName + " " + login.Mi + " " + login.LastName
                        }
                    };
                    emailDetails.SpecificInfo.Add("{{code}}", token);
                    _emailHandler.SendEmail(emailDetails, (int)RequestResponse.Enums.EmailType.VERIFICATIONCODE);
                });

                Tk.Wait();

                login.Email = updateEmailRequest.email;
                login.Token = token;

                _ucOnlinePortalContext.LoginInfos.Update(login);
                _ucOnlinePortalContext.SaveChanges();
            }

            return(new UpdateEmailResponse {
                success = 1
            });
        }
예제 #20
0
 public static void Run([QueueTrigger("emails", Connection = "AzureWebJobsStorage")] EmailDetails myQueueItem,
                        [SendGrid(ApiKey = "SendGridApiKey")] out SendGridMessage message,
                        ILogger log)
 {
     log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
     message = new SendGridMessage();
     message.AddTo("*****@*****.**");
     message.AddContent("text/html", myQueueItem.Name + myQueueItem.Email + "exito");
     message.SetFrom(new EmailAddress("*****@*****.**"));
     message.SetSubject("TEST");
 }
예제 #21
0
 public static Tabstrip GetEmailTabs(string currentFormId, int emailId)
 {
     return(new Tabstrip
     {
         CurrentTab = currentFormId,
         Tabs = new List <Tab>
         {
             EmailDetails.Button(emailId, "Email").AsTab()
         }
     });
 }
예제 #22
0
 public int updateEmailtrackerIncentive(string p1, string p2, EmailDetails details, IncentiveData obj3, string AuthorName1)
 {
     try
     {
         return(obj.updateEmailtrackerIncentive(p1, p2, details, obj3, AuthorName1));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #23
0
 public IncentiveData CheckUniqueIdIncentive(string p1, string p2, EmailDetails details)
 {
     try
     {
         return(obj.CheckUniqueIdIncentive(p1, p2, details));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #24
0
        public static EmailDetails NewEmailDetails(DbSet <EmailDetails> dbSet, string email)
        {
            var c = new EmailDetails()
            {
                EmailAddress = email,
                LastModified = DateTime.Now
            };

            dbSet.Add(c);
            return(c);
        }
예제 #25
0
        public async Task <Response> SendMail(NotificationType notificationType, EmailDetails emailDetails)
        {
            var response = new Response();

            try
            {
                if (emailDetails == null)
                {
                    return(response);
                }
                switch (notificationType)
                {
                case NotificationType.LearnerAssignmentUpload:
                    response = await SendLearnerAssignmentUploadEmail(emailDetails);

                    break;

                case NotificationType.LearnerReminder:
                    response = await SendLearnerReminderEmail(emailDetails);

                    break;

                case NotificationType.EvaluatorErrorFileUpload:
                    response = await SendEvaluatorErrorFileUploadEmail(emailDetails);

                    break;

                case NotificationType.EvaluatorCompleteEvaluation:
                    response = await SendEvaluatorScoreUploadEmail(emailDetails);

                    break;

                case NotificationType.EvaluatorReminder:
                    response = await SendEvaluatorReminderEmail(emailDetails);

                    break;

                case NotificationType.OPMAssignmentUpload:
                    response = await SendOPMAssignmentUploadEmail(emailDetails);

                    break;

                case NotificationType.OPMPublishResult:
                    response = await SendOPMPublishResultEmail(emailDetails);

                    break;
                }
            }
            catch (Exception ex)
            {
                Logging.Logger.LogException(ex);
            }
            return(response);
        }
예제 #26
0
        public async Task ProcessEmailAsync(EmailDetails emailDetails)
        {
            // for debug
            //var myEmailAccount = System.Configuration.ConfigurationManager.AppSettings["mailAccount"];
            //var apiKey = System.Configuration.ConfigurationManager.AppSettings["SENDGRID_APIKEY"];

            // for release
            var myEmailAccount = System.Environment.GetEnvironmentVariable("mailAccount");
            var apiKey         = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");

            var client           = new SendGridClient(apiKey);
            var emailAccountName = "Kimiko";

            StringBuilder emailBody = new StringBuilder()
                                      .AppendLine("You have recieved an email from your site from ")
                                      .AppendLine(emailDetails.Name);

            emailBody.Append(Environment.NewLine);
            emailBody.AppendLine(emailDetails.Message);
            emailBody.Append(Environment.NewLine);
            emailBody.AppendLine("Email Address: ")
            .AppendLine(emailDetails.EmailAddress);
            emailBody.Append(Environment.NewLine);
            emailBody.Append("-----------------------------------------------");
            emailBody.Append(Environment.NewLine);
            emailBody.AppendFormat(" -- Audio: {0} --",
                                   emailDetails.Audio ? "Yes" : "No");
            emailBody.AppendFormat(" Website: {0} --",
                                   emailDetails.Website ? "Yes" : "No");
            emailBody.AppendFormat(" Programming: {0} -- ",
                                   emailDetails.Programming ? "Yes" : "No");


            var message = new SendGridMessage()
            {
                From             = new EmailAddress(emailDetails.EmailAddress, emailDetails.Name),
                Subject          = "New Email From Your Site",
                PlainTextContent = emailBody.ToString()
            };

            message.AddTo(new EmailAddress(myEmailAccount, emailAccountName));

            try
            {
                await client.SendEmailAsync(message);

                emailDetails.StatusMessage = "Your email was successfully sent :)";
            }
            catch (Exception)
            {
                emailDetails.StatusMessage = "Unfortunately, there was a problem sending your email.";
            }
        }
예제 #27
0
        public async Task <ActionResult> Contact(EmailDetails emailDetails, EmailProcessor emailProcessor)
        {
            if (ModelState.IsValid)
            {
                await emailProcessor.ProcessEmailAsync(emailDetails);

                ViewBag.Status = emailDetails.StatusMessage;
                return(View("Thankyou", emailDetails));
            }
            ;

            // return empty form if invalid
            return(View("Contact"));
        }
        public async Task <IHttpActionResult> SendEmail(
            string to,
            string from,
            string subject)
        {
            var content = string.Empty;

            try
            {
                content = await Request.Content.ReadAsStringAsync();
            } catch (Exception e)
            {
                telemetry.TrackException(e);
                return(BadRequest("Failed to get email content"));
            }

            if (string.IsNullOrEmpty(to))
            {
                return(BadRequest("Recipient email is missing (to)"));
            }

            var emailDetails = EmailDetails.CreateEmail(to.Split(',').ToList(), from, subject, content);

            if (!emailDetails.ValidRecipients)
            {
                return(BadRequest("Recipient email is either missing or not in a correct format"));
            }

            if (!emailDetails.ValidSender)
            {
                return(BadRequest("Sender email is either missing or not in a correct format"));
            }

            if (!emailDetails.ValidSubject)
            {
                return(BadRequest("Title exceeds allowed length"));
            }

            try
            {
                await EmailHandler.AddEmailToQueue(emailDetails);
            } catch
            {
                //retry
                await EmailHandler.AddEmailToQueue(emailDetails);
            }

            return(Ok("Email created"));
        }
예제 #29
0
        static void Main(string[] args)
        {/*/
          * string otp="";
          *
          * //To login in please use
          * Console.WriteLine(otp);
          *
          * Console.ReadLine();
          * /*/
            Logger.InitializeLogger();
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var           enc1252       = Encoding.GetEncoding(1252);
            ClientFactory clientFactory = new ClientFactory();

            string emailAddr = ConfigurationManager.AppSettings.Get("email");
            string password  = ConfigurationManager.AppSettings.Get("password");
            string domain    = ConfigurationManager.AppSettings.Get("domain");
            string from      = ConfigurationManager.AppSettings.Get("from");
            string subject   = ConfigurationManager.AppSettings.Get("subject");
            //string hostName = ConfigurationManager.AppSettings.Get("gmailHostName");
            //string port = ConfigurationManager.AppSettings.Get("gmailPort");

            List <String> sentTo = new List <string>();

            sentTo.Add(emailAddr);

            IEmailClient client = (IEmailClient)clientFactory.CreateClient(domain);

            //EmailDetails email = new EmailDetails(client.ConnectAndAuthEmailClient
            // (emailAddr, password), from, sentTo, subject, domain);
            EmailDetails email = new EmailDetails(client.ConnectAndAuthEmailClient
                                                      (emailAddr, password, "test", 121), from, sentTo, subject, domain);
            // TRY OVERLOAD WITH PORT AND HOSTNAME

            EmailParser emailParser = new EmailParser();
            Message     msg         = email.GetEmailMsg(from, subject);

            String emailAsTxt = emailParser.ConvertEmailToTxt(msg);

            String otp = emailParser.ExtractOTP(emailAsTxt, "To login in please use");

            //String otp = emailHandler.ExtractOTP(emailAsTxt);


            Console.WriteLine(otp);

            Console.ReadLine();
            Logger.CloseTheFile();
        }
예제 #30
0
 protected void btnUpdate_Click(object sender, EventArgs e)
 {
     if (!Page.IsValid)
     {
         return;
     }
     try
     {
         obj.MemberId        = txtboxMemberId.Text.Trim();
         obj.CurrentBalance  = Convert.ToDouble(txtcurbal.Text.Trim());
         obj.TotalPoint      = Convert.ToDouble(txtadjustment.Text.Trim());
         obj.Remarks         = txtRemarks.Text.Trim();
         obj.CurrentBalance  = obj.CurrentBalance + Convert.ToDouble(obj.TotalPoint);
         obj.TransactionType = "ADJ";
         if (obj.TotalPoint > 0)
         {
             obj.NumberType = "Added";
         }
         else
         {
             obj.NumberType = "Removed";
         }
         bool result1 = B.UpdateCurBal(obj); //Business layer
         if (result1 == true)
         {
             string CloseWindow1 = "alert('Incentive Point Saved successfully')";
             //ScriptManager.RegisterStartupScript(EditUpdatePanel, EditUpdatePanel.GetType(), "alert", CloseWindow1, true);
             ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow", CloseWindow1, true);
             btnUpdate.Enabled = false;
             EmailDetails details = new EmailDetails();
             details = SendMail(txtboxMemberId.Text, txtcurbal.Text, txtadjustment.Text, txtRemarks.Text, obj.CurrentBalance, obj.NumberType);
             SendMailObject obj1    = new SendMailObject();
             bool           resultv = obj1.InsertIntoEmailQueue(details);
         }
         else
         {
             string CloseWindow1 = "alert('Incentive Point Saved successfully')";
             ScriptManager.RegisterStartupScript(EditUpdatePanel, EditUpdatePanel.GetType(), "alert", CloseWindow1, true);
             btnUpdate.Enabled = false;
         }
     }
     catch (Exception ex)
     {
         log.Error(ex.StackTrace);
         log.Error(ex.Message);
         ClientScript.RegisterStartupScript(Page.GetType(), "validation1", "<script language='javascript'>alert('Error!!!!!!!!!!')</script>");
     }
 }
예제 #31
0
        /*
         * Method to get open sections
         */

        public EmailCheckResponse CheckEmail(EmailCheckRequest emailCheckRequest)
        {
            var login     = _ucOnlinePortalContext.LoginInfos.Where(x => x.Email == emailCheckRequest.email).FirstOrDefault();
            var loginTemp = _ucOnlinePortalContext.TmpLogins.Where(x => x.Email == emailCheckRequest.email).FirstOrDefault();

            if (login != null)
            {
                return(new EmailCheckResponse {
                    success = 0
                });
            }
            if (loginTemp != null)
            {
                _ucOnlinePortalContext.TmpLogins.Attach(loginTemp);
                _ucOnlinePortalContext.TmpLogins.Remove(loginTemp);
            }

            //Generate random number for Token
            Random generator = new Random();
            String token     = generator.Next(0, 1000000).ToString("D6");

            TmpLogin newtmpLogin = new TmpLogin
            {
                Email = emailCheckRequest.email,
                Token = token
            };

            var Tk = Task.Run(() =>
            {
                var emailDetails = new EmailDetails
                {
                    To = new EmailAddress {
                        Address = emailCheckRequest.email, Name = emailCheckRequest.fullname
                    }
                };
                emailDetails.SpecificInfo.Add("{{code}}", token);
                _emailHandler.SendEmail(emailDetails, (int)RequestResponse.Enums.EmailType.VERIFICATIONCODE);
            });

            Tk.Wait();

            _ucOnlinePortalContext.TmpLogins.Add(newtmpLogin);
            _ucOnlinePortalContext.SaveChanges();

            return(new EmailCheckResponse {
                success = 1
            });
        }
예제 #32
0
        private void LoadMailsFromFolders(Folder folder)
        {
            emailDetailsList = new List<EmailDetails>();
            ItemCollection items = folder.GetItems();

            for (int m = 0; m < items.Count; m++)
            {
                string custom_messageID = GenerateUID();
                if (items[m] is PSTMessage)
                {
                    PSTMessage message = (PSTMessage)items[m];
                    RecipientCollection recipColl = message.Recipients;
                    //InsertRecipientCount(message.InternetMessageId, recipColl);
                    foreach (Recipient r in recipColl)
                    {
                        EmailDetails emailDetails = new EmailDetails();
                        //emailDetails.ID = message.Id.ToString();
                        //emailDetails.parentID = message.ParentId.ToString();
                        emailDetails.CustomMessageID = custom_messageID;
                        emailDetails.MessageID = message.InternetMessageId;
                        emailDetails.FromDisplayName = message.SenderName;
                        emailDetails.RecipientDisplayName = r.DisplayName;

                        if (message.SenderAddressType == "EX")
                            emailDetails.FromEmailID = GetFromEmailFromExchangeString(message.SenderEmailAddress).ToLower() + "@virtusa.com";
                        else
                            emailDetails.FromEmailID = message.SenderEmailAddress;

                        if (r.AddressType == "EX")
                            emailDetails.RecipientEmailID = GetFromEmailFromExchangeString(r.EmailAddress).ToLower() + "@virtusa.com";
                        else
                            emailDetails.RecipientEmailID = r.EmailAddress;

                        emailDetails.RecipientDisplayName = r.DisplayName;

                        if (emailDetails.RecipientEmailID != null && emailDetails.RecipientEmailID.Contains('@'))
                            emailDetails.DomainName = emailDetails.RecipientEmailID.Split('@')[1];
                        
                        
                        emailDetails.RecipientType = r.RecipientType.ToString();
                        emailDetails.EmailDatetime = message.MessageDeliveryTime.ToString();
                        emailDetails.Subject = message.Subject;
                        
                        if (emailDetails.RecipientEmailID != null)                        
                            emailDetailsList.Add(emailDetails);
                        //Debug.Print(r.EmailAddress);
                        //Debug.Print(message.Id + " - " + message.InternetMessageId + " - " +  r.RecipientType + " - " + message.SenderEmailAddress + " - " + r.DisplayName + " - " + r.EmailAddress);
                    }
                    LoadContentToDB(emailDetailsList);
                    emailDetailsList.Clear();
                    recipColl.Clear();
                }
            }
        }