Dot-Net

在 ASP NET MVC 6 項目中使用 System.Net.Mail

  • May 31, 2017

我無法在 ASP NET 5 項目中創建簡單的模擬郵件發件人。

這裡的方法:

   public static Task SendMail(string Email, string Subject, string Body)
   {
       SmtpClient client = new SmtpClient();
       client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
       client.PickupDirectoryLocation = "C:\\TMP";

       MailAddress from = new MailAddress("jane@contoso.com", "Jane " + (char)0xD8 + " Clayton", System.Text.Encoding.UTF8);
       MailAddress to = new MailAddress(Email);

       MailMessage message = new MailMessage(from, to);
       message.Body = Body;
       message.BodyEncoding = System.Text.Encoding.UTF8;
       message.Subject = Subject;
       message.SubjectEncoding = System.Text.Encoding.UTF8;

       client.Send(message);
       message.Dispose();

       return Task.FromResult(0);
   }

我已經包含了依賴項“System.Net.Mail”,但工具提示說該庫在 DNX 4.5.1 中可用,但在 DNX Core 5.0 中不可用,並且該項目將無法編譯。

在我的 project.json 中有:

"frameworks": {
   "dnx451": { },
   "dnxcore50": { }
}

我不相信 SmtpClient 被移植到 .Net Core。(您可以使用非官方的反向包查找來查找新的 NuGet 包,但沒有。)

由於您不需要 .Net Core,您可以從project.json中刪除該dnxcore50條目。frameworks

到今天為止,現在可以使用 MailKit 在 dnxcore50 和 net451(以及許多其他平台)上發送電子郵件

我正在使用 ASP.NET 5 的 rc1 並將這些依賴項添加到我的 project.json 以引入所需的 nuget

"MimeKit": "1.3.0-beta1",
"MailKit": "1.3.0-beta1"

所以在 dnxcore50 中缺少 System.Net.Mail 不再是問題,MailKit 庫實際上比任何舊的 System.Net.Mail 的東西都更豐富。

非常感謝 Jeffrey Stedfast 的辛勤工作。

引用自:https://stackoverflow.com/questions/30299618