public async Task SendEmailAsync(EmailBase emailBase)
        {
            // Plug in your email service here to send an email.
            var emailMessage = new MimeMessage();

            emailMessage.From.Add(new MailboxAddress(emailBase.senderName, emailBase.mailFrom));
            emailMessage.To.Add(new MailboxAddress("", emailBase.email));
            emailMessage.Subject = emailBase.subject;
            emailMessage.Body    = new TextPart("html")
            {
                Text = emailBase.message
            };
            using (var client = new SmtpClient())
            {
                //client.LocalDomain = emailBase.LocalDomain;
                await client.ConnectAsync(emailBase.smtpUrl, emailBase.port, SecureSocketOptions.Auto).ConfigureAwait(false);

                // client.Authenticate(emailBase.mailFrom,emailBase.password);
                await client.SendAsync(emailMessage).ConfigureAwait(false);

                await client.DisconnectAsync(true).ConfigureAwait(false);
            }
        }
        public void Initialize(IEmailBuilder emailBuilder, EmailBase email)
        {
            emailBuilder.SetSender(email.From);
            emailBuilder.SetContent(email.Subject, email.Content, email.ContentType);

            if (email.Headers.Count > 0)
            {
                emailBuilder.AddToWithHeader(email.Headers);
            }

            foreach (EmailAddress emailAddress in email.To)
            {
                emailBuilder.AddToRecipient(emailAddress);
            }
            foreach (EmailAddress emailAddress in email.Cc)
            {
                emailBuilder.AddCcRecipient(emailAddress);
            }
            foreach (EmailAddress emailAddress in email.Bcc)
            {
                emailBuilder.AddBccRecipient(emailAddress);
            }
        }
Example #3
0
        /// <summary>
        /// Sends a single email message.
        /// </summary>
        /// <param name="message">The email message to send.</param>
        public void Send(EmailBase message)
        {
            var task = SendEmail(message);

            task.Wait();
        }
 public NewsletterViewModel(NewsletterPage currentPage)
     : this(currentPage, EmailBase.GetNotificationSettings())
 {
 }
Example #5
0
 private void SetToAndFromValues(EmailBase model)
 {
     To.Add(model.To);
     From = model.From ?? ConfigurationManager.AppSettings["Email:Support"];
 }
Example #6
0
        public async Task UpdateSaveWithText(int userId, EmailBase emailBase)
        {
            if (emailBase == null)
            {
                throw new GraException("No email base template to update.");
            }

            var dbTemplate = await GetByIdAsync(emailBase.Id);

            if (dbTemplate == null)
            {
                throw new GraException($"Unable to find email template id {emailBase.Id}.");
            }

            bool changes = false;

            if (!string.IsNullOrEmpty(emailBase.Name) &&
                emailBase.Name.Trim() != dbTemplate.Name)
            {
                dbTemplate.Name = emailBase.Name.Trim();
                changes         = true;
            }

            if (changes)
            {
                await UpdateSaveAsync(userId, dbTemplate);
            }

            bool newRecord = false;

            if (emailBase?.EmailBaseText != null)
            {
                var dbBaseText = await _context
                                 .EmailBaseTexts
                                 .SingleOrDefaultAsync(_ => _.EmailBaseId == emailBase.Id &&
                                                       _.LanguageId == emailBase.EmailBaseText.LanguageId);

                if (dbBaseText == null)
                {
                    newRecord  = true;
                    dbBaseText = new Model.EmailBaseText
                    {
                        EmailBaseId = emailBase.Id,
                        CreatedAt   = _dateTimeProvider.Now,
                        CreatedBy   = userId,
                        LanguageId  = emailBase.EmailBaseText.LanguageId
                    };
                }

                dbBaseText.TemplateHtml = emailBase.EmailBaseText.TemplateHtml?.Trim();
                dbBaseText.TemplateMjml = emailBase.EmailBaseText.TemplateMjml?.Trim();
                dbBaseText.TemplateText = emailBase.EmailBaseText.TemplateText?.Trim();

                if (newRecord)
                {
                    await _context.EmailBaseTexts.AddAsync(dbBaseText);
                }
                else
                {
                    _context.EmailBaseTexts.Update(dbBaseText);
                }

                await _context.SaveChangesAsync();
            }
        }