private void UpdateEmailSettings(EmailSettings emailSettings, EmailSettingsDto emailSettingsDto) { // Notification settings emailSettings.EnableNotifications = emailSettingsDto.EnableReviewNotifications; emailSettings.EnableEmailReplies = emailSettingsDto.EnableDiscussions; emailSettings.EnableEmailDiscussion = emailSettingsDto.EnableEmailNotifications; // Incoming settings emailSettings.IncomingServerType = (int)emailSettingsDto.Incoming.ServerType; emailSettings.IncomingHostName = emailSettingsDto.Incoming.ServerAddress; emailSettings.IncomingPort = emailSettingsDto.Incoming.Port; emailSettings.IncomingEnableSSL = emailSettingsDto.Incoming.EnableSsl; emailSettings.IncomingUserName = emailSettingsDto.Incoming.AccountUsername; if (emailSettingsDto.Incoming.IsPasswordDirty) { emailSettings.IncomingPassword = SystemEncryptions.EncryptForSilverLight(emailSettingsDto.Incoming.AccountPassword); } // Outgoing settings emailSettings.HostName = emailSettingsDto.Outgoing.ServerAddress; emailSettings.Port = emailSettingsDto.Outgoing.Port; emailSettings.EnableSSL = emailSettingsDto.Outgoing.EnableSsl; emailSettings.SenderEmailAddress = emailSettingsDto.Outgoing.AccountEmailAddress; emailSettings.Authenticated = emailSettingsDto.Outgoing.AuthenticatedSmtp; emailSettings.UserName = emailSettingsDto.Outgoing.AccountUsername; if (emailSettingsDto.Outgoing.IsPasswordDirty) { emailSettings.Password = SystemEncryptions.EncryptForSilverLight(emailSettingsDto.Outgoing.AccountPassword); } }
public virtual async Task <EmailSettingsDto> GetAsync() { await CheckFeatureAsync(); var settingsDto = new EmailSettingsDto { SmtpHost = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Host), SmtpPort = Convert.ToInt32(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Port)), SmtpUserName = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UserName), SmtpPassword = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Password), SmtpDomain = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Domain), SmtpEnableSsl = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl)), SmtpUseDefaultCredentials = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials)), DefaultFromAddress = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromAddress), DefaultFromDisplayName = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName), }; if (CurrentTenant.IsAvailable) { settingsDto.SmtpHost = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Host, CurrentTenant.GetId(), false); settingsDto.SmtpUserName = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.UserName, CurrentTenant.GetId(), false); settingsDto.SmtpPassword = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Password, CurrentTenant.GetId(), false); settingsDto.SmtpDomain = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Domain, CurrentTenant.GetId(), false); } return(settingsDto); }
public async Task UpdateEmailSettingsAsync(int userId, EmailSettingsDto emailSettingsDto) { if (emailSettingsDto.Incoming == null) { throw new BadRequestException("Incoming cannot be null.", ErrorCodes.InvalidParameter); } if (emailSettingsDto.Outgoing == null) { throw new BadRequestException("Outgoing cannot be null.", ErrorCodes.InvalidParameter); } await _privilegesManager.Demand(userId, InstanceAdminPrivileges.ManageInstanceSettings); if (!emailSettingsDto.EnableEmailNotifications && emailSettingsDto.EnableDiscussions) { throw new BadRequestException("Cannot enable discussions without enabling email notifications.", ErrorCodes.CannotEnableDiscussions); } VerifyIncomingSettings(emailSettingsDto.Incoming, emailSettingsDto.EnableDiscussions); VerifyOutgoingSettings(emailSettingsDto.Outgoing); var emailSettings = await _instanceSettingsRepository.GetEmailSettings(); UpdateEmailSettings(emailSettings, emailSettingsDto); await _instanceSettingsRepository.UpdateEmailSettingsAsync(emailSettings); }
public async Task UpdateEmailSettings(EmailSettingsDto input) { //强制设定这两个选项,避免在ui上让用户迷惑,除非明确知道这两个选项的作用 input.SmtpUseDefaultCredentials = false; input.SmtpDomain = string.Empty; if (AbpSession.TenantId.HasValue) { var tenantId = AbpSession.TenantId.Value; await ChangeForTenant(tenantId, EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress); await ChangeForTenant(tenantId, EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.Domain, input.SmtpDomain); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString()); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.Host, input.SmtpHost); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.Password, input.SmtpPassword); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.Port, input.SmtpPort.ToString()); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString()); await ChangeForTenant(tenantId, EmailSettingNames.Smtp.UserName, input.SmtpUserName); } else { await ChangeForApplication(EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress); await ChangeForApplication(EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName); await ChangeForApplication(EmailSettingNames.Smtp.Domain, input.SmtpDomain); await ChangeForApplication(EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString()); await ChangeForApplication(EmailSettingNames.Smtp.Host, input.SmtpHost); await ChangeForApplication(EmailSettingNames.Smtp.Password, input.SmtpPassword); await ChangeForApplication(EmailSettingNames.Smtp.Port, input.SmtpPort.ToString()); await ChangeForApplication(EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString()); await ChangeForApplication(EmailSettingNames.Smtp.UserName, input.SmtpUserName); } }
public async Task UpdateAsync(EmailSettingsDto EmailSettings, string providerName = null, string providerKey = null) { var domain = new EmailSettings(); ObjectMapper.Map(EmailSettings, domain); await Factory.SetAsync(domain, providerName, providerKey); }
protected override async Task OnInitializedAsync() { try { EmailSettings = await EmailSettingsAppService.GetAsync(); } catch (Exception ex) { await HandleErrorAsync(ex); } }
private async Task SendEmailNotification(EmailSettingsDto emailSettings) { if (emailSettings != null && emailSettings.IsAvailable()) { var from = new MailAddress(emailSettings.Address, "Dwg Base Notification"); var to = new MailAddress(emailSettings.Address); using (var m = new MailMessage(from, to)) { m.Subject = "Dwg Base Notification"; m.Body = "New file was uploaded by user"; m.IsBodyHtml = false; using (var smtp = new SmtpClient(emailSettings.Host, emailSettings.Port)) { smtp.Credentials = new NetworkCredential(emailSettings.UserName, emailSettings.Password); smtp.EnableSsl = false; await smtp.SendMailAsync(m).ConfigureAwait(true); } } } }
public async Task UpdateEmailSettings(EmailSettingsDto settings) { await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.DefaultFromAddress, settings.DefaultFromAddress); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.DefaultFromDisplayName, settings.DefaultFromDisplayName); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Host, settings.SmtpHost); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Port, settings.SmtpPort.ToString(CultureInfo.InvariantCulture)); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.UserName, settings.SmtpUserName); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Password, settings.SmtpPassword); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Domain, settings.SmtpDomain); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.EnableSsl, settings.SmtpEnableSsl.ToString().ToLowerInvariant()); await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.UseDefaultCredentials, settings.SmtpUseDefaultCredentials.ToString().ToLowerInvariant()); }
public Task UpdateEmailSettingsAsync([FromBody] EmailSettingsDto emailSettingsDto) { return(_emailSettingsService.UpdateEmailSettingsAsync(Session.UserId, emailSettingsDto)); }
protected override async Task OnInitializedAsync() { EmailSettings = await EmailSettingsAppService.GetAsync(); }
public async Task <EmailSettingsDto> GetAsync(EmailSettingsGetDto EmailSettingsGet = null, bool fallback = true) { EmailSettingsDto result = new EmailSettingsDto(); return(ObjectMapper.Map(await Factory.GetAsync(EmailSettingsGet.ProviderName, EmailSettingsGet.ProviderKey), result)); }
public Task UpdateAsync(EmailSettingsDto EmailSettings, string providerName = null, string providerKey = null) { return(EmailSettingsAppService.UpdateAsync(EmailSettings, providerName, providerKey)); }
public void Initialize() { Mock <IPrivilegesRepository> privilegesRepositoryMock = new Mock <IPrivilegesRepository>(); Mock <IUserRepository> userRepositoryMock = new Mock <IUserRepository>(); Mock <IWebsiteAddressService> websiteAddressServiceMock = new Mock <IWebsiteAddressService>(); _instanceSettingsRepositoryMock = new Mock <IInstanceSettingsRepository>(); _emailHelperMock = new Mock <IEmailHelper>(); _incomingEmailServiceMock = new Mock <IIncomingEmailService>(); _emailSettingsService = new EmailSettingsService(new PrivilegesManager(privilegesRepositoryMock.Object), userRepositoryMock.Object, _emailHelperMock.Object, websiteAddressServiceMock.Object, _instanceSettingsRepositoryMock.Object, _incomingEmailServiceMock.Object); privilegesRepositoryMock.Setup(repo => repo.GetInstanceAdminPrivilegesAsync(UserId)).ReturnsAsync(() => _adminPrivilege); userRepositoryMock.Setup(repo => repo.GetUserAsync(UserId)).ReturnsAsync(() => _user); websiteAddressServiceMock.Setup(service => service.GetWebsiteAddress()).Returns(WebsiteAddress); _instanceSettingsRepositoryMock.Setup(repo => repo.GetEmailSettings()).ReturnsAsync(() => _emailSettings); // Setup Default Values _outgoingSettings = new EmailOutgoingSettings() { AuthenticatedSmtp = true, AccountPassword = "******", AccountUsername = "******", AccountEmailAddress = "*****@*****.**", EnableSsl = true, Port = 2, ServerAddress = "smtp.blueprintsys.com", IsPasswordDirty = true }; _incomingSettings = new EmailIncomingSettings() { AccountUsername = "******", AccountPassword = "******", EnableSsl = true, Port = 2, ServerAddress = "mail.test.com", ServerType = EmailClientType.Imap, IsPasswordDirty = true }; _adminPrivilege = InstanceAdminPrivileges.ManageInstanceSettings; _user = new User() { Email = "*****@*****.**" }; _emailSettings = new EmailSettings() { Password = EncryptedPassword, IncomingPassword = EncryptedPassword, Authenticated = true, EnableEmailDiscussion = false, EnableEmailReplies = true, EnableNotifications = true, EnableSSL = true, SenderEmailAddress = "*****@*****.**", HostName = "smtp.test.com", Port = 1234, UserName = "******", IncomingEnableSSL = false, IncomingHostName = "pop3.test.com", IncomingPort = 2345, IncomingServerType = 0, IncomingUserName = "******" }; _emailSettingsDto = new EmailSettingsDto() { EnableDiscussions = false, EnableEmailNotifications = true, EnableReviewNotifications = false, Incoming = new EmailIncomingSettings() { AccountPassword = "******", AccountUsername = "******", EnableSsl = true, IsPasswordDirty = true, Port = 8765, ServerAddress = "imap.test.com", ServerType = EmailClientType.Pop3 }, Outgoing = new EmailOutgoingSettings() { AccountEmailAddress = "*****@*****.**", AccountPassword = "******", AccountUsername = "******", AuthenticatedSmtp = true, EnableSsl = true, IsPasswordDirty = true, Port = 9876, ServerAddress = "mail.test.com" } }; }