Ejemplo n.º 1
0
        /// <summary>
        /// Reads the specified stream.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <returns>The file</returns>
        public override IMessage Read(Stream stream)
        {
            var ReturnObject = new GenericEmail();

            if (stream is null)
            {
                return(ReturnObject);
            }
            MimeMessage?Message = GetMessage(stream);

            if (Message is null)
            {
                return(ReturnObject);
            }
            if (!string.IsNullOrEmpty(Message.HtmlBody))
            {
                using var TempStream = new MemoryStream(Message.HtmlBody.ToByteArray());
                ReturnObject.Content = new HTMLFormat().Read(TempStream).Content;
            }
            else
            {
                ReturnObject.Content = Message.TextBody;
            }
            ReturnObject.BCC.Add(Message.Bcc.Select(x => x.Name));
            ReturnObject.CC.Add(Message.Cc.Select(x => x.Name));
            ReturnObject.From  = Message.From.Mailboxes.FirstOrDefault()?.Address ?? "";
            ReturnObject.Sent  = Message.Date.UtcDateTime;
            ReturnObject.Title = Message.Subject;
            ReturnObject.To.Add(Message.To.Select(x => x.Name));
            return(ReturnObject);
        }
Ejemplo n.º 2
0
        public async Task SendAsync(IdentityMessage message)
        {
            var mailMessage = new GenericEmail();

            mailMessage.Sender = new GenericEmailAddress(ConfigUtil.NoreplyEmailAddress, ConfigUtil.NoreplyDisplayName);
            mailMessage.ToAddresses.Add(new GenericEmailAddress(message.Destination, string.Empty));
            mailMessage.HtmlBody   = message.Body;
            mailMessage.Subject    = message.Subject;
            mailMessage.Categories = new[] { "account-activation" };

            await Task.Run(() => _genericEmailManager.QueueEmail(mailMessage));
        }
Ejemplo n.º 3
0
        private static void SendEmail(string subject, string body, string recipientEmail)
        {
            var mailMessage = new GenericEmail();

            mailMessage.Sender = new GenericEmailAddress(ConfigUtil.FeedbackEmailFromAddress, ConfigUtil.FeedbackEmailDisplayName);
            mailMessage.ToAddresses.Add(new GenericEmailAddress(recipientEmail, string.Empty));
            mailMessage.HtmlBody   = body;
            mailMessage.Subject    = subject;
            mailMessage.Categories = new[] { "supdate-feedback" };

            _genericEmailManager.QueueEmail(mailMessage);

            Console.WriteLine("Queued email to {0}", recipientEmail);
        }
Ejemplo n.º 4
0
        public GenericEmail CreateEmailMessage(string toName, string toAddress, string subject, string body, params string[] categories)
        {
            var mailMessage = new GenericEmail();

            mailMessage.Sender = new GenericEmailAddress(ConfigUtil.NoreplyEmailAddress, ConfigUtil.NoreplyDisplayName);
            mailMessage.ToAddresses.Add(new GenericEmailAddress(toAddress, toName));

            // Body and subject
            mailMessage.Subject  = subject;
            mailMessage.HtmlBody = body;

            // Categories.
            mailMessage.Categories = categories;

            return(mailMessage);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Reads the specified stream.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <returns>The file</returns>
        public override IMessage Read(Stream stream)
        {
            using var message = new Message(stream);
            var ReturnValue = new GenericEmail
            {
                Content = message.BodyText ?? "",
                Title   = message.Subject ?? "",
                From    = message.From ?? "",
                Sent    = message.SentTime ?? DateTime.Now
            };

            AddRecipients(message, RecipientType.Unknown, x => ReturnValue.BCC.Add(x));
            AddRecipients(message, RecipientType.CC, x => ReturnValue.CC.Add(x));
            AddRecipients(message, RecipientType.To, x => ReturnValue.To.Add(x));
            return(ReturnValue);
        }
Ejemplo n.º 6
0
        static private void SendEmail(GenericEmail email)
        {
            //Ivoke Email Service
            EmailRequest requestEmail = new EmailRequest();

            requestEmail.EmailContent = email;

            //Send fax by email proxy

            EmailResponse emailResponse = (EmailResponse)GenericEmailProcessor.SendEMail(requestEmail);

            if (emailResponse == null)
            {
                Sitecore.Diagnostics.Log.Error("SendEmail - Unable to send email", typeof(Utilities.Email));
            }
            else
            {
                if (emailResponse.MailQId == 0 || emailResponse.MailQId == -1)
                {
                    Sitecore.Diagnostics.Log.Error(string.Format("SendEmail - Unable to send email. Fault: {0}", emailResponse.Fault), typeof(Utilities.Email));
                }
            }
        }
Ejemplo n.º 7
0
        public void QueueEmail(GenericEmail mailMessage)
        {
            var message = JsonConvert.SerializeObject(mailMessage);

            _cloudStorage.Enqueue(ConfigUtil.GenericEmailQueueName, message);
        }
Ejemplo n.º 8
0
        public async Task <ActionResult <int> > SendEmail(
            [FromForm] string sendTo,
            [FromForm] DateTimeOffset?from,
            [FromForm] DateTimeOffset?until,
            [FromForm] string subjectSK,
            [FromForm] string subjectCS,
            [FromForm] string subjectEN,
            [FromForm] string textSK,
            [FromForm] string textCS,
            [FromForm] string textEN
            )
        {
            try
            {
                int ret = 0;
                if (!User.IsAdmin(userRepository))
                {
                    throw new Exception(localizer[Controllers_AdminController.Only_admin_is_allowed_to_manage_time].Value);
                }
                if (string.IsNullOrEmpty(textEN))
                {
                    textEN = textSK;
                }
                if (string.IsNullOrEmpty(textSK))
                {
                    textSK = textEN;
                }
                if (string.IsNullOrEmpty(textCS))
                {
                    textCS = textSK;
                }
                var subject = subjectSK;
                if (CultureInfo.CurrentCulture.Name.StartsWith("en"))
                {
                    subject = subjectEN;
                }
                if (CultureInfo.CurrentCulture.Name.StartsWith("cs"))
                {
                    subject = subjectCS;
                }
                var email = new GenericEmail(CultureInfo.CurrentCulture.Name, configuration["FrontedURL"], configuration["EmailSupport"], configuration["PhoneSupport"])
                {
                    TextSK    = textSK,
                    TextCS    = textCS,
                    TextEN    = textEN,
                    SubjectCS = subjectCS,
                    SubjectEN = subjectEN,
                    SubjectSK = subjectSK
                };

                if (sendTo == "test")
                {
                    await emailSender.SendEmail(subject, "*****@*****.**", "Scholtz", email);

                    ret++;
                }
                else if (sendTo == "eHealth")
                {
                    var oldCulture   = CultureInfo.CurrentCulture;
                    var oldUICulture = CultureInfo.CurrentUICulture;
                    foreach (var visitor in await visitorRepository.ListTestedVisitors())
                    {
                        if (string.IsNullOrEmpty(visitor.Email))
                        {
                            continue;
                        }
                        if (from.HasValue && visitor.TestingTime < from.Value)
                        {
                            continue;
                        }
                        if (until.HasValue && visitor.TestingTime > until.Value)
                        {
                            continue;
                        }

                        // >>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        if (!visitor.EHealthNotifiedAt.HasValue)
                        {
                            continue;
                        }

                        var specifiedCulture = new CultureInfo(visitor.Language ?? "en");
                        CultureInfo.CurrentCulture   = specifiedCulture;
                        CultureInfo.CurrentUICulture = specifiedCulture;

                        subject = subjectSK;
                        if (CultureInfo.CurrentCulture.Name.StartsWith("en"))
                        {
                            subject = subjectEN;
                        }
                        if (CultureInfo.CurrentCulture.Name.StartsWith("cs"))
                        {
                            subject = subjectCS;
                        }

                        await emailSender.SendEmail(subject, visitor.Email, $"{visitor.FirstName} {visitor.LastName}", email);

                        logger.LogInformation($"SendEmailGeneric: Sent to {visitor.Id}");
                        ret++;
                    }
                    CultureInfo.CurrentCulture   = oldCulture;
                    CultureInfo.CurrentUICulture = oldUICulture;
                }
                else
                {
                    await emailSender.SendEmail(subject, sendTo, "Scholtz", email);

                    ret++;
                }
                return(ret);
            }
            catch (Exception exc)
            {
                logger.LogError(exc, exc.Message);

                return(BadRequest(new ProblemDetails()
                {
                    Detail = exc.Message
                }));
            }
        }