我已经设置了aspnet样板来发送电子邮件。我使用以下命令设置了默认值:
public class AppSettingProvider : SettingProvider
{
public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
{
return new[]
{
new SettingDefinition(EmailSettingNames.DefaultFromAddress, "", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.DefaultFromDisplayName, "", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.Host, "127.0.0.1", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.Port, "25", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.UserName, XXXXX, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.Password, XXXXX, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.Domain, string.Empty, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.EnableSsl, "true", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true),
new SettingDefinition(EmailSettingNames.Smtp.UseDefaultCredentials, string.Empty, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true)
};
}
}
但是,当我发送电子邮件时,它会生成“字符串未被识别为有效的布尔值”异常,我还应如何定义EmailSettingNames.Smtp.EnableSsl属性,以使其正确应用?
下面是正确的一个:
public class AppSettingProvider : SettingProvider { public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context) { return new[] { new SettingDefinition(EmailSettingNames.DefaultFromAddress, "", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.DefaultFromDisplayName, "", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.Host, "127.0.0.1", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.Port, "25", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.UserName, XXXXX, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.Password, XXXXX, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.Domain, string.Empty, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.EnableSsl, "true", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true), new SettingDefinition(EmailSettingNames.Smtp.UseDefaultCredentials, "false", scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true, isInherited: true) }; } }
更正:
UseDefaultCredentials
不能为空字符串。