Example #1
0
 //send one mail
 private static void SendMail(MailDto mail, SmtpDto smtp = null)
 {
     SendMails(new List <MailDto>()
     {
         mail
     }, smtp);
 }
        private void SendActivationMails(IList <Artist> artists)
        {
            //prepare the emails set the dto
            IList <MailDto> mailingList = new List <MailDto>();
            var             template    = _emailsManager.GetOne(filter: c => c.Type == EmailTemplateType.InvitedArtist);

            foreach (var artist in artists)
            {
                var mailDto = new MailDto();
                mailDto.EmailAddress = artist.User.Email;
                mailDto.Subject      = template.Subject;
                mailDto.Body         = template.Body.Replace("[Name]", artist.User.Name);
                var code        = _userManager.GeneratePasswordResetTokenAsync(artist.User).Result;
                var callbackUrl = Url.ResetPasswordCallbackLink(artist.User.Id.ToString(), code, Request.Scheme);
                mailDto.Body = mailDto.Body.Replace("[Link]", "<a href=" + callbackUrl + ">" + template.LinkText + "</a>");
                mailingList.Add(mailDto);
            }
            var configuration = _emailsManager.GetConfiguration();

            new Thread(() =>
            {
                Thread.CurrentThread.IsBackground = true;
                _emailsManager.SendMultipleMails(mailingList, configuration);
            }).Start();
        }
Example #3
0
 /// <summary>
 /// send one mail
 /// </summary>
 /// <param name="mail">email model</param>
 /// <param name="smtp">smtp model</param>
 /// <param name="sync">sync send or not, false(web ap), console(true)</param>
 public static void Send(MailDto mail, SmtpDto smtp = null, bool sync = false)
 {
     Sends(new List <MailDto>()
     {
         mail
     }, smtp, sync);
 }
        public void Save(MailDto data)
        {
            var entity = new Mail(data.Subject, data.Subject, data._mailFrom, data._mailTo);

            MailCollection.InsertOne(entity);
            // _context.Mails.InsertOne(entity);
        }
Example #5
0
        public async Task SendTargetIsDownMailAsync(TargetDto targetDto)
        {
            var to          = targetDto.UserEmail;
            var mailBody    = Messages.TargetMailBody(targetDto.Name, targetDto.Url, targetDto.Interval, DateTime.Now);
            var mailSubject = Messages.TargetMailSubject;

            var mailDto = new MailDto
            {
                Text  = mailBody,
                Title = mailSubject,
                To    = to
            };

            try
            {
                await SendMailAsync(to, mailSubject, mailBody);

                _logger.LogInformation("Mail sended to {0} at {1} successfully, target url:{2}", to, DateTime.Now, targetDto.Url);
                mailDto.IsSend = true;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error when send mail to {0} at {1}", to, DateTime.Now);
                mailDto.IsSend = false;
            }
            finally
            {
                await AddAsync(mailDto);
            }
        }
Example #6
0
        private void PrepareAndSendMails(IList <Artist> artists, ApplicationUser recordLabel)
        {
            //prepare the emails set the dto
            IList <MailDto> mailingList = new List <MailDto>();
            var             template    = _repository.GetAll <EmailTemplate>().Where(c => c.Type == EmailTemplateType.DeletedArtist).FirstOrDefault();

            foreach (var artist in artists)
            {
                var artistDto = new MailDto();
                artistDto.EmailAddress = artist.User.Email;
                artistDto.Subject      = template.Subject;
                artistDto.Body         = template.Body.Replace("[Name]", artist.User.Name);
                mailingList.Add(artistDto);
            }
            var mailDto = new MailDto();

            template             = _repository.GetAll <EmailTemplate>().Where(c => c.Type == EmailTemplateType.DeletedRecordLabel).FirstOrDefault();
            mailDto.EmailAddress = recordLabel.Email;
            mailDto.Subject      = template.Subject;
            mailDto.Body         = template.Body.Replace("[Name]", recordLabel.Name);
            mailingList.Add(mailDto);

            var configuration = _repository.GetAll <Configuration>().ToList();

            //fire and forget
            new Thread(() =>
            {
                Thread.CurrentThread.IsBackground = true;
                _emailsManager.SendMultipleMails(mailingList, configuration);
            }).Start();
        }
Example #7
0
        static public void InsertMessageInQueue(MailDto mailDto)
        {
            MessageQueue msmq;

            try
            {
                string qname = @".\Private$\Mails";
                if (!MessageQueue.Exists(qname))
                {
                    //Console.Write("No such Q path! Creating...");
                    msmq       = MessageQueue.Create(qname);
                    msmq.Label = "test";
                    msmq.Send(mailDto);
                }
                else
                {
                    msmq       = new MessageQueue(qname);
                    msmq.Label = "test";
                    msmq.Send(mailDto);
                }
                msmq.Close();
            }
            catch
            {
                throw;
            }
        }
Example #8
0
        public MailOutputDto Save([FromBody] MailDto mailDto)
        {
            var setPassword = (mailDto.Id != 0 && !string.IsNullOrEmpty(mailDto.Password)) ||
                              mailDto.Id == 0;
            var secret = Guid.NewGuid().ToString();
            var mail   = new Mail
            {
                Id           = mailDto.Id,
                EmailAddress = mailDto.EmailAddress,
                EnableSsl    = mailDto.EnableSsl,
                Host         = mailDto.Host,
                Name         = mailDto.Name,
                Password     = setPassword ? encryption.Encrypt(mailDto.Password, secret) : string.Empty,
                Port         = mailDto.Port,
                UserId       = user.Id
            };

            context.Update(mail);
            context.Entry(mail).Property(x => x.Password).IsModified = setPassword;
            context.SaveChanges();

            return(new MailOutputDto
            {
                Id = mail.Id,
                EmailAddress = mail.EmailAddress,
                EnableSsl = mail.EnableSsl,
                Host = mail.Host,
                Name = mail.Name,
                Password = mailDto.Password,
                Port = mail.Port,
                Secret = setPassword ? secret : null
            });
        }
Example #9
0
        public Task <SwaggerResponse> SendMailAsync(MailDto mailMessage)
        {
            var headers = new Dictionary <string, IEnumerable <string> >();

            try
            {
                var userId  = _httpContextAccessor.HttpContext.User.FindFirst(cl => cl.Type.Equals("id")).Value;
                var profile = _unitOfWork.AppProfiles.FindById(userId);
                var to      = new EmailAddress {
                    Email = "*****@*****.**"
                };
                var from = new EmailAddress {
                    Email = profile.Identity.Email
                };
                var mailPayload = new MailPayload {
                    Subject = mailMessage.Subject, Body = mailMessage.Body, From = from
                };
                mailPayload.ToList.Add(from);
                _mailClient.SetOptions(_mailConfigOptions);
                _mailClient.SendEmail(mailPayload);
                return(Task.Run(() => new SwaggerResponse(StatusCodes.Status200OK, headers)));
            }
            catch (Exception exception)
            {
                return(HandleException(exception, headers));
            }
        }
Example #10
0
        public static async Task UpdateAsync(ApiDto apiDto, MailDto mailDto, ContextDto contextDto)
        {
            try
            {
                var httpClient    = HttpClientHelper.Get(apiDto);
                var integratorDto = await GetIntegratorAsync(httpClient, MyStatusId);

                if (integratorDto != null && integratorDto.Version == MyVersion)
                {
                    return;
                }
                await ExternalTableHelper.PostAsync(httpClient, "HrLinkCompany", GetExternalTablePostModel());

                await DatabaseHelper.RecreateViewsAsync(httpClient, GetSkillsWorkflowIntegrationHrLinkCompanies());

                if (!await DatabaseHelper.ExistsViewAsync(apiDto, "SkillsWorkflowIntegrationHrLinkCompanies"))
                {
                    throw new Exception("View SkillsWorkflowIntegrationHrLinkCompanies not created.");
                }
                await PostIntegratorAsync(httpClient);
            }
            catch (Exception exception)
            {
                var groupId = contextDto.TenantId.ToString() + "-" + Updater.MyStatusId.ToString();
                await MailHelper.SendEmailAsync(mailDto, "Error updating HrLink structure.", MailHelper.GetBodyTextOf(contextDto, exception.InnerException?.Message ?? exception.Message), mailDto.AdministratorMail, null, true, groupId);
            }
        }
Example #11
0
        public static async Task SendMailAsync(MailDto mailDto)
        {
            var smtpServer = new SmtpClient("smtp.gmail.com", 587);//todo add pop - imap clients
            var mail       = new MailMessage {
                From = new MailAddress(mailDto.SenderEmailAddress)
            };

            mail.To.Add(mailDto.ToEmailAddress);
            mail.Subject    = mailDto.Subject;
            mail.IsBodyHtml = true;

            var htmlBody = "";

            htmlBody += "<div>" + mailDto.Message + "</div>";

            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");

            mail.AlternateViews.Add(htmlView);


            mail.Body = htmlBody;
            smtpServer.UseDefaultCredentials = false;

            smtpServer.Credentials = new NetworkCredential(mailDto.SenderEmailAddress, mailDto.SenderPassword);
            smtpServer.EnableSsl   = true;

            await smtpServer.SendMailAsync(mail);
        }
Example #12
0
 public Controller(List <ApiDto> tenants, MailDto mailDto)
 {
     Tenants        = tenants ?? throw new ArgumentNullException(nameof(tenants));
     MailDto        = mailDto ?? throw new ArgumentNullException(nameof(mailDto));
     _companyHelper = new CompanyHelper();
     _userHelper    = new UserHelper();
 }
Example #13
0
        public async Task <bool> SendMail(string to, string subject, string body)
        {
            var uri     = $"learning/Utility/sendemail";
            var message = $"There was an error while attempting to send email to: {to} with subject: {subject}";
            var mailDto = new MailDto(to, subject, body);

            return(await _apiContext.PostActionAsync(uri, mailDto, message));
        }
Example #14
0
        public void MailTest()
        {
            MailDto dto = new MailDto();

            dto.Subject = "您的文章《九宫山游记》有新的评论,请注意查收!";
            dto.Body    = "中国武汉网友:写的真心不错!";
            Assert.AreEqual(MailHelper.Send(dto), true);
        }
Example #15
0
        public async Task <IActionResult> SendAsync(MailDto mailDto)
        {
            if (areParametersWrong())
            {
                return(new JsonResult(new ExceptionDto {
                    Message = "Could not send the email"
                })
                {
                    StatusCode = 422
                });
            }

            var message = new MimeMessage();

            var from = new MailboxAddress(mailDto.Mail,
                                          mailDto.Mail);

            message.From.Add(from);

            var to = new MailboxAddress("User",
                                        recipient);

            message.To.Add(to);

            message.Subject = "New message from TAB clinic from: " + mailDto.Mail;

            var bodyBuilder = new BodyBuilder();

            bodyBuilder.TextBody = mailDto.Message;
            message.Body         = bodyBuilder.ToMessageBody();

            var client = new SmtpClient();

            try
            {
                await client.ConnectAsync(smtp, port, true);

                await client.AuthenticateAsync(login, password);

                client.Send(message);
                client.Disconnect(true);
                client.Dispose();
            }
            catch (Exception e)
            {
                return(new JsonResult(new ExceptionDto {
                    Message = "Could not send the email"
                })
                {
                    StatusCode = 422
                });
            }
            return(new JsonResult(mailDto)
            {
                StatusCode = 201
            });
        }
Example #16
0
        public async Task <IActionResult> SendSlack([FromBody] MailDto slackMessage)
        {
            if (!ModelState.IsValid)
            {
                return(HandleInvalidModelState(ModelState));
            }
            var result = await _implementation.SendSlackAsync(slackMessage).ConfigureAwait(false);

            return(ProcessResponse(result));
        }
Example #17
0
        public void Send(string subject, string message, string _mailTo, string _mailFrom)
        {
            Debug.WriteLine($"mail from {_mailFrom } to {_mailTo} CloudMailService");
            Debug.WriteLine($"subject {subject}");
            Debug.WriteLine($"message {message}");

            var data = new MailDto(subject, message, _mailTo, _mailFrom);

            _dataRepository.Save(data);
        }
 //[ProducesResponseType(200, Type = typeof(IEnumerable<MailDto>))]
 //[ProducesResponseType(404)]
 public IActionResult SendMail(MailDto mailDto)
 {
     try
     {
         return(Ok(_IMailService.SendMailAsync(mailDto)));
     }
     catch (Exception ex)
     {
         return(Ok(ex.ToString()));
     }
 }
Example #19
0
        public async Task <ServiceResult <MailDto> > AddAsync(MailDto mailDto)
        {
            var mail = _mapper.Map <Mail>(mailDto);

            var addedMail = await _mailRepository.AddAsync(mail);

            return(new ServiceResult <MailDto>
            {
                Result = _mapper.Map <MailDto>(addedMail)
            });
        }
Example #20
0
        public static string ExportPrisonersInbox(SoftJailDbContext context, string prisonersNames)
        {
            var names = prisonersNames.Split(',');

            var prisoners = context.Prisoners
                            .Include(p => p.Mails)
                            .Where(p => names.Any(n => n == p.FullName))
                            .ToArray();

            var result = new List <PrisonerDto>();

            foreach (var p in prisoners)
            {
                PrisonerDto prisonerDto = new PrisonerDto
                {
                    Id = p.Id,
                    IncarcerationDate = p.IncarcerationDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture),
                    Name = p.FullName,
                };

                var messages = new List <MailDto>();

                foreach (var m in p.Mails)
                {
                    var charArray = m.Description.ToCharArray();
                    Array.Reverse(charArray);
                    var desc = new string(charArray);

                    MailDto mailDto = new MailDto {
                        Description = desc
                    };

                    messages.Add(mailDto);
                }

                prisonerDto.EncryptedMessages = messages.ToArray();

                result.Add(prisonerDto);
            }

            var export = result.OrderBy(a => a.Name).ThenBy(a => a.Id).ToArray();

            var sb = new StringBuilder();

            var serializer = new XmlSerializer(typeof(PrisonerDto[]), new XmlRootAttribute("Prisoners"));

            serializer.Serialize(new StringWriter(sb), export, new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }));

            var xml = sb.ToString();

            return(xml);
        }
Example #21
0
        public MailDto GeneratePasswordMail(string userName, string secret, string mailTo)
        {
            string  url = "https://karasayfa.com/#/reset?secret=" + secret;
            MailDto dto = service.GetMailTemplate(MailType.PasswordReminder);

            dto.HtmlMessage = dto.HtmlMessage.Replace("{{UserName}}", userName)
                              .Replace("{{Secret}}", url);

            dto.Textmessage = dto.Textmessage.Replace("{{UserName}}", userName)
                              .Replace("{{Secret}}", url);
            dto.ReceiverAddress = mailTo;
            return(dto);
        }
Example #22
0
        //send many mails
        public static void Sends(List <MailDto> mails, SmtpDto smtp = null, bool sync = false)
        {
            //change receiver to tester if need !!
            var mail     = new MailDto();// = null;
            var testMode = !string.IsNullOrEmpty(_Fun.Config.TesterMail);

            if (testMode)
            {
                mail         = mails[0];
                mail.ToUsers = StrToUsers(_Fun.Config.TesterMail);
                mail.CcUsers = null;
            }

            //sync = true;    //temp add
            if (sync)
            {
                if (testMode)
                {
                    SendMail(mail, smtp);
                }
                else
                {
                    SendMails(mails, smtp);
                }
            }
            else
            {
                if (testMode)
                {
                    var thread = new Thread(delegate()
                    {
                        SendMail(mail, smtp);
                    });
                    thread.Start();
                }
                else
                {
                    /*
                     * Task.Factory.StartNew(() =>
                     * {
                     *  SendMails(mails, smtp);
                     * });
                     */
                    var thread = new Thread(delegate()
                    {
                        SendMails(mails, smtp);
                    });
                    thread.Start();
                }
            }
        }
Example #23
0
        public MailDto GenerateMessageMail(string userName, string messageFrom, string mailTo, string content)
        {
            MailDto dto = service.GetMailTemplate(MailType.GotMessage);

            dto.HtmlMessage = dto.HtmlMessage.Replace("{{UserName}}", userName)
                              .Replace("{{MessageFrom}}", messageFrom)
                              .Replace("{{Date}}", DateTime.Now.ToShortTimeString())
                              .Replace("{{Message}}", content);
            dto.Textmessage = dto.Textmessage.Replace("{{UserName}}", userName)
                              .Replace("{{MessageFrom}}", messageFrom)
                              .Replace("{{Message}}", content);
            dto.ReceiverAddress = mailTo;
            return(dto);
        }
Example #24
0
        public async Task <MimeMessage> GetMessage(MailDto mailDto, bool useSsl, UniqueId emailId)
        {
            using (var imapClient = new ImapClient())
            {
                imapClient.CheckCertificateRevocation = false;
                await imapClient.ConnectAsync(mailDto.Server, ImapPort, useSsl);

                await imapClient.AuthenticateAsync(mailDto.Name, mailDto.Password);

                var inbox = imapClient.Inbox;
                await inbox.OpenAsync(FolderAccess.ReadOnly);

                return(await inbox.GetMessageAsync(emailId));
            }
        }
Example #25
0
        public async Task <IEnumerable <IMessageSummary> > GetAllSubjects(MailDto mailDto, bool useSsl)
        {
            using (var imapClient = new ImapClient())
            {
                imapClient.CheckCertificateRevocation = false;
                await imapClient.ConnectAsync(mailDto.Server, ImapPort, useSsl);

                await imapClient.AuthenticateAsync(mailDto.Name, mailDto.Password);

                var inbox = imapClient.Inbox;
                await inbox.OpenAsync(FolderAccess.ReadOnly);

                return(await inbox.FetchAsync(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId));
            }
        }
Example #26
0
        public void PrepareContactFormMail(string name, string email, string message)
        {
            var recieverMail  = _repository.Get <Configuration>(filter: x => x.Key == ConfigurationKey.ContactFormRecieverMail).FirstOrDefault().Value;
            var template      = _repository.GetAll <EmailTemplate>().Where(x => x.Type == EmailTemplateType.ContactForm).FirstOrDefault();
            var bodyToSend    = message + "<br> <br> Sender:<br>Name: " + name + "<br>Email Address: " + email;
            var configuration = _repository.GetAll <Configuration>().ToList();
            var mail          = new MailDto()
            {
                EmailAddress = email,
                Subject      = template.Subject,
                Body         = bodyToSend
            };

            SendMailSmtp(mail, configuration);
        }
        public bool Post([FromBody] MailDto email)
        {
            try
            {
                MailMessage           objmail = new MailMessage();
                MailAddressCollection mails   = new MailAddressCollection();
                foreach (string mail in email.destinations)
                {
                    mails.Add(new MailAddress(mail));
                }


                objmail.Subject = "Appel D'Offres";
                objmail.From    = new MailAddress(email.author);

                foreach (string fi in email.documents)
                {
                    Attachment fichier = new Attachment(fi);
                    objmail.Attachments.Add(fichier);
                }

                foreach (MailAddress destinator in mails)
                {
                    objmail.To.Add(destinator);
                }
                objmail.Body = "Code:" + email.offer.code + "<br/>" +
                               "Intitule:" + email.offer.intitule + "<br/>" +
                               "Libelle:" + email.offer.categorie.libelle + "<br/>" +
                               "Description:" + email.offer.description + "<br/>" +
                               "Date Limit:" + email.offer.dateLimit + "<br/>" +
                               "Place Of Depot:" + email.offer.placeDepot;
                objmail.IsBodyHtml = true;



                SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                client.EnableSsl   = true;
                client.Credentials = new System.Net.NetworkCredential("*****@*****.**", email.password);

                client.Send(objmail);

                return(true);
            } catch (Exception e)
            {
                Debug.WriteLine(e.Message + e.StackTrace);
                throw;
            }
        }
Example #28
0
        private static void AddImage(MailDto mail, string imageId, string imagePath)
        {
            if (!File.Exists(imagePath))
            {
                return;
            }

            if (mail.ImageIds == null)
            {
                mail.ImageIds   = new List <string>();
                mail.ImagePaths = new List <string>();
            }

            mail.ImageIds.Add(imageId);
            mail.ImagePaths.Add(imagePath);
        }
        public async Task <GenericResponse> TestMail(MailDto mailDto)
        {
            // Deneme amaçlı eklendi
            //ServiceResult service = await mailer.SendAsync(new string[]{"*****@*****.**","*****@*****.**"}, null, null, "test","denemem eerer", null);

            ServiceResult result = await mailer.SendAsync(mailDto.recipients, mailDto.bccList, mailDto.ccList, mailDto.subject, mailDto.body, mailDto.attachments);

            if (result.Success)
            {
                return(GenericResponse.Ok());
            }
            else
            {
                return(GenericResponse.Error(ResultType.Error, result.Error, "TC_TM_01", StatusCodes.Status500InternalServerError));
            }
        }
Example #30
0
        private MailDto CreateMail(Message message, string uid)
        {
            var result = new MailDto
            {
                Identifier   = uid,
                DateTime     = message.Headers.DateSent,
                MailFrom     = message.Headers.From.DisplayName,
                Email        = message.Headers.From.Address,
                Subject      = message.Headers.Subject,
                Body         = this.GetTexts(message.MessagePart).ToList().Join("\n"),
                IsHtml       = false,
                Attachements = this.GetAttachements(message.MessagePart).ToList(),
            };

            return(result);
        }