/// <summary> /// Sends 'New user' notification message to a store owner /// </summary> /// <param name="user">User instance</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public virtual IList <int> SendUserRegisteredNotificationMessage(User user, int languageId) { if (user == null) { throw new ArgumentNullException(nameof(user)); } var messageTemplates = GetActiveMessageTemplates(MessageTemplateSystemNames.UserRegisteredNotification); if (!messageTemplates.Any()) { return(new List <int>()); } //tokens var commonTokens = new List <Token>(); _messageTokenProvider.AddUserTokens(commonTokens, user); return(messageTemplates.Select(messageTemplate => { //email account var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); var tokens = new List <Token>(commonTokens); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = emailAccount.Email; var toName = emailAccount.DisplayName; return SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName); }).ToList()); }
/// <summary> /// Sends 'New user' notification message to a platform owner /// </summary> /// <param name="user">User instance</param> /// <returns>Queued email identifier</returns> public virtual IList <int> SendUserRegisteredNotificationMessage(User user) { if (user == null) { throw new ArgumentNullException(nameof(user)); } var messageTemplates = GetActiveMessageTemplates(MessageTemplateSystemNames.UserRegisteredNotification); if (!messageTemplates.Any()) { return(new List <int>()); } //tokens var commonTokens = new List <Token>(); _messageTokenProvider.AddUserTokens(commonTokens, user); return(messageTemplates.Select(messageTemplate => { var tokens = new List <Token>(commonTokens); _messageTokenProvider.AddPlatformTokens(tokens); var toEmail = _config.PlatformSettings.Email; var toName = _config.PlatformSettings.Name; return SendNotification(messageTemplate, tokens, toEmail, toName); }).ToList()); }
/// <summary> /// Sends 'New user' notification message to a application owner /// </summary> /// <param name="user">User instance</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public virtual int SendUserRegisteredNotificationMessage(User user, int languageId) { if (user == null) { throw new ArgumentNullException("user"); } var application = _sysContext.CurrentApplication; languageId = EnsureLanguageIsActive(languageId, application.Id); var messageTemplate = GetActiveMessageTemplate(MessageTemplateSystemNames.UserRegisteredNotification, application.Id); if (messageTemplate == null) { return(0); } //email account var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List <Token>(); _messageTokenProvider.AddApplicationTokens(tokens, application, emailAccount); _messageTokenProvider.AddUserTokens(tokens, user); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = emailAccount.Email; var toName = emailAccount.DisplayName; return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }
/// <summary> /// Sends a campaign to specified emails /// </summary> /// <param name="campaign">Campaign</param> /// <param name="emailAccount">Email account</param> /// <param name="subscriptions">Subscriptions</param> /// <returns>Total emails sent</returns> public virtual int SendCampaign(Campaign campaign, EmailAccount emailAccount, IEnumerable <NewsLetterSubscription> subscriptions) { if (campaign == null) { throw new ArgumentNullException(nameof(campaign)); } if (emailAccount == null) { throw new ArgumentNullException(nameof(emailAccount)); } var totalEmailsSent = 0; foreach (var subscription in subscriptions) { var user = _userService.GetUserByEmail(subscription.Email); //ignore deleted or inactive users when sending newsletter campaigns if (user != null && (!user.Active || user.Deleted)) { continue; } var tokens = new List <Token>(); _messageTokenProvider.AddNewsLetterSubscriptionTokens(tokens, subscription); if (user != null) { _messageTokenProvider.AddUserTokens(tokens, user); } var subject = _tokenizer.Replace(campaign.Subject, tokens, false); var body = _tokenizer.Replace(campaign.Body, tokens, true); var email = new QueuedEmail { Priority = QueuedEmailPriority.Low, From = emailAccount.Email, FromName = emailAccount.DisplayName, To = subscription.Email, Subject = subject, Body = body, CreatedOnUtc = DateTime.UtcNow, EmailAccountId = emailAccount.Id, DontSendBeforeDateUtc = campaign.DontSendBeforeDateUtc }; _queuedEmailService.InsertQueuedEmail(email); totalEmailsSent++; } return(totalEmailsSent); }
/// <summary> /// Sends 'New user' notification message to a store owner /// </summary> /// <param name="user">User instance</param> /// <param name="languageId">Message language identifier</param> /// <returns>Queued email identifier</returns> public virtual int SendUserRegisteredNotificationMessage(User user, int languageId) { if (user == null) { throw new ArgumentNullException("user"); } languageId = EnsureLanguageIsActive(languageId); var messageTemplate = GetLocalizedActiveMessageTemplate("NewUser.Notification", languageId); if (messageTemplate == null) { return(0); } //tokens var tokens = new List <Token>(); _messageTokenProvider.AddSiteTokens(tokens); _messageTokenProvider.AddUserTokens(tokens, user); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); var toEmail = emailAccount.Email; var toName = emailAccount.DisplayName; // use user email as reply address var replyTo = GetReplyToEmail(user); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName, replyTo.Item1, replyTo.Item2)); }
private async Task <int> SendActivationEmail(User user) { var messageTemplate = await _messageManager.GetActiveMessageTemplate("Customer.EmailValidationMessage"); if (messageTemplate == null) { return(0); } var tokens = new List <Token>(); _messageTokenProvider.AddUserTokens(tokens, user); string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); _emailSender.Send("*****@*****.**", _tokenizer.Replace(messageTemplate.Subject, tokens, false), _tokenizer.Replace(messageTemplate.Body, tokens, true)); //entity.EmailConfirmationCode = await _userManager.GenerateEmailConfirmationTokenAsync(entity.Id); //await _userManager.SendEmailAsync(entity.Id, "sss", "bbb"); return(1); }
public int SendFriendRequestNotification(User customer, int friendRequestCount, int languageId, int storeId) { var store = _storeService.GetStoreById(storeId); languageId = EnsureLanguageIsActive(languageId, store.Id); var messageTemplate = GetLocalizedActiveMessageTemplate("MobSocial.FriendRequestNotification", store.Id); if (messageTemplate == null) { return(0); } var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId); //tokens var tokens = new List <Token>(); _messageTokenProvider.AddStoreTokens(tokens, store, emailAccount); _messageTokenProvider.AddUserTokens(tokens, customer); tokens.Add(new Token("FriendRequestCount", friendRequestCount.ToString())); //event notification _eventPublisher.MessageTokensAdded(messageTemplate, tokens); var toEmail = customer.Email; var toName = customer.GetFullName().ToTitleCase(); return(SendNotification(messageTemplate, emailAccount, languageId, tokens, toEmail, toName)); }