如何配置過去在asp.net 4中的web.config
的郵件設置<system.net><mailSettings>
?我想我需要撥打services.Configure<>()
,但我不知道我應該通過哪些選項。有任何想法嗎?如何在ASP.NET 5中配置電子郵件設置?
感謝, f0rt
如何配置過去在asp.net 4中的web.config
的郵件設置<system.net><mailSettings>
?我想我需要撥打services.Configure<>()
,但我不知道我應該通過哪些選項。有任何想法嗎?如何在ASP.NET 5中配置電子郵件設置?
感謝, f0rt
嘗試這樣的一種方式,以保持你的祕密的祕密。首先,安裝SecretManager
並用你的祕密進行配置。當您在本地計算機上時,您需要使用SecretManager
中的值。通過您的託管(例如在Azure中),您將使用環境變量。
SecretManager
dnu commands install Microsoft.Extensions.SecretManager
user-secret set "smtp-host" "smtp-mail.outlook.com"
user-secret set "smtp-port" "587"
user-secret set "smtp-username" "myUsername"
user-secret set "smtp-password" "@#$HFS%#$%SFsd"
還有,使這個出差錯,如果你已經安裝了2015年VS RC的錯誤。 There's a workaround here.
下面是在MS Azure中的Web App的例子,但其他網站的主機可能有類似的選項。
dnx451
注意。另外,我們有一個userSecretsId
。
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"userSecretsId" : "Add-an-arbitrary-user-secrets-id",
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.UserSecrets": "1.0.0-beta4"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
},
"frameworks": {
"dnx451": { }
}
/* other configuration omitted */
}
現在你可以在本地訪問這些用戶的祕密,而當使用時的環境變量將覆蓋它們。我剛剛測試了這個最小的項目。有用。
using System;
using System.Net;
using System.Net.Mail;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Framework.ConfigurationModel;
namespace WebApplication1
{
public class Startup
{
public Startup()
{
var configuration = new Configuration();
// the order cascades
// e.g. Environmental variables will overwrite the UserSecrets
configuration.AddUserSecrets();
configuration.AddEnvironmentVariables();
this.Configuration = configuration;
}
IConfiguration Configuration { get; set; }
public void Configure(IApplicationBuilder app)
{
var host = this.Configuration.Get("smtp-host");
var port = this.Configuration.Get("smtp-port");
var username = this.Configuration.Get("smtp-username");
var password = this.Configuration.Get("smtp-password");
var from = "[email protected]";
var to = "[email protected]";
var subject = "Dinner on Tues?";
var body = "How about it?";
var mailMessage = new MailMessage(from, to, subject, body);
var smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = host;
smtpClient.Port = Int32.Parse(port);
smtpClient.Credentials = new NetworkCredential(username, password);
smtpClient.EnableSsl = true;
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello SMTP!");
smtpClient.Send(mailMessage);
});
}
}
}
這個問題特別是關於如何在ASPNET 5中配置郵件設置
不幸的是,SMTP類尚未轉換到.NET 5,但(http://forums.asp.net/t /2037552.aspx?SMTP+in+CoreCLR) - 你可能需要經歷一下在代碼中自己配置'SmtpClient'的痛苦。 –
@MattDeKrey雖然這是真的,但f0rt並未指定他使用核心,並且SMTP類在整個框架中確實存在。 –