public SmtpMessageChannel( IOrchardServices orchardServices, IShapeFactory shapeFactory, IShapeDisplay shapeDisplay) { _shapeFactory = shapeFactory; _shapeDisplay = shapeDisplay; _smtpSettings = orchardServices.WorkContext.CurrentSite.As <SmtpSettingsPart>(); _smtpClientField = new Lazy <SmtpClient>(CreateSmtpClient); }
void LazyLoadHandlers(LoadContentContext context, SmtpSettingsPart part) { part.PasswordField.Getter(() => { try { return(String.IsNullOrWhiteSpace(part.Record.Password) ? String.Empty : Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(part.Record.Password)))); } catch { Logger.Error("The email password could not be decrypted. It might be corrupted, try to reset it."); return(null); } }); part.PasswordField.Setter(value => part.Record.Password = String.IsNullOrWhiteSpace(value) ? String.Empty : Convert.ToBase64String(_encryptionService.Encode(Encoding.UTF8.GetBytes(value)))); }
private SmtpClient BuildSmtpClient(SmtpSettingsPart smtpSettings) { var mailClient = new SmtpClient { Host = smtpSettings.Host, Port = smtpSettings.Port, EnableSsl = smtpSettings.EnableSsl, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = !smtpSettings.RequireCredentials }; if (!mailClient.UseDefaultCredentials && !String.IsNullOrWhiteSpace(smtpSettings.UserName)) { mailClient.Credentials = new NetworkCredential(smtpSettings.UserName, smtpSettings.Password); } return(mailClient); }
void LazyLoadHandlers(LoadContentContext context, SmtpSettingsPart part) { part.PasswordField.Getter(() => { try { var encryptedPassword = part.Retrieve(x => x.Password); return(String.IsNullOrWhiteSpace(encryptedPassword) ? String.Empty : Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(encryptedPassword)))); } catch { Logger.Error("The email password could not be decrypted. It might be corrupted, try to reset it."); return(null); } }); part.PasswordField.Setter(value => { var encryptedPassword = String.IsNullOrWhiteSpace(value) ? String.Empty : Convert.ToBase64String(_encryptionService.Encode(Encoding.UTF8.GetBytes(value))); part.Store(x => x.Password, encryptedPassword); }); part.AddressPlaceholderField.Loader(value => (string)((dynamic)ConfigurationManager.GetSection("system.net/mailSettings/smtp")).From); }