使用ASP.Net vNext发送邮件

Mrc*_*ief 14 .net c# email asp.net-mvc asp.net-core

在传统的ASP.Net和.Net中,发送邮件是通过System.Net.Mail驻留的类完成的System.dll.现在使用KRE,vNext似乎没有System.Net.Mail单独的包.

引用"net453"框架project.json

"frameworks": {
    "aspnet50": { },
    "aspnetcore50": { },
    "net453": {}       // <<< throws compilation errors
},
Run Code Online (Sandbox Code Playgroud)

因为以下错误导致所有地狱崩溃:

.NET Framework 4.5.3错误CS0234:名称空间"Microsoft"中不存在类型或命名空间名称"AspNet"(您是否缺少程序集引用?)

它几乎抱怨作为kpm包的一部分的所有vNext依赖项.

那么,有没有人想出一种使用ASP.Net vNext发送邮件的方法呢?

注意

即使System出现在References下,即使System.Net.Mail可以使用Intellisense show ,代码也不会编译.例如,像这样的简单陈述虽然看似有效,

using System.Net.Mail; 

var m = new MailMessage();
Run Code Online (Sandbox Code Playgroud)

将抛出编译错误,例如:

ASP.NET Core 5.0错误CS0234:名称空间"System"中不存在类型或命名空间名称"Net"(您是否缺少程序集引用?)

ASP.NET Core 5.0错误CS0246:找不到类型或命名空间名称"MailMessage"(您是否缺少using指令或程序集引用?)

更新

使用最新的Visual Studio 2015 CTP 5,他们似乎修复了智能感知故障.现在System.Net不再有Mail命名空间了.在旁注中,我使用VS 2015预览创建的vNext项目不再有效 - 我在主页上收到403.3错误!啊,使用测试版软件的喜悦!

Eil*_*lon 6

要使用System.Net.Mail您的应用只能定位aspnet50.该aspnetcore50目标有没有这样的支持(至少,不是现在,据我所知).

您不应该拥有自己的应用目标net453(正如Luca在评论中提到的那样,无论如何已经重命名),因为ASP.NET 5应用程序不能在该平台上运行.

目标应用程序aspnet50通常可以引用任何.NET 4.0+ NuGet包或GAC引用.

所以,你的情况,删除net453aspnetcore50目标,以及aspnet50目标添加了一个框架参考System.Net.Mail.

一个完整的替代方法是发现有两种发送电子邮件支持其他一些现有的NuGet包aspnet50aspnetcore50,但我怀疑这样的包在这个时候存在(尽管它无疑将在未来的某一时刻).

  • 这就是诀窍!在删除一些时,我正在添加更多框架!:) (2认同)
  • 有点让我感到震惊的是ASP.net 5在Release Candidate 1 Update 1中没有本地方式发送电子邮件.这对大多数网站来说都是必须的,不是吗?我理解通过跨平台有很多事情要考虑,但几乎我曾经工作的每个网站都需要电子邮件功能(忘记密码,联系我们,收据等).这是将人们留在Windows/IIS堆栈上的"陷阱"吗?我看到@ Simon-Ordo发布了一个潜在的第三方库MailKit.还有其他好的选择吗? (2认同)