【发布时间】:2021-01-27 06:04:22
【问题描述】:
我正在尝试从 Blazor WASM 应用发送电子邮件,但收到此异常
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] 未处理的异常呈现组件:无法发送消息。 System.Net.Mail.SmtpException:无法发送消息。 ---> System.PlatformNotSupportedException:此平台不支持 System.Net.Dns:GetHostByName。 在 System.Net.Sockets.TcpClient..ctor (System.String 主机名,System.Int32 端口) 在:0 在 System.Net.Mail.SmtpClient.SendInternal (System.Net.Mail.MailMessage 消息) in :0 在 System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage 消息) in :0 --- 内部异常堆栈跟踪结束 --- 在 System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage 消息) in :0 在 C:\Users\ismailghedamsi\Source\Repos\MusicSellingPlatformVeille\MusicSellingApp\Client\Pages\ArtistProfile.razor:33 中的 MusicSellingApp.Client.Pages.ArtistProfile.SendMail () [0x000a3] 在 C:\Users\ismailghedamsi\Source\Repos\MusicSellingPlatformVeille\MusicSellingApp\Client\Pages\ArtistProfile.razor:38 中的 MusicSellingApp.Client.Pages.ArtistProfile.OnInitializedAsync () [0x0000f] 在 Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () in :0
这是我的剃须刀文件
@page "/artistProfile"
@inject ILocalStorageService storageService
@using System.Net.Mail
<h2>@(artist == null)</h2>
<UserInfoComponent User="@artist" />
@code{
Artist artist;
public void SendMail()
{
try
{
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress("mymail@gmail.com");
mail.To.Add("mymail@gmail.com");
mail.Subject = "Sending mail";
mail.Body = "<h2>this is a mail body</h2>";
mail.IsBodyHtml = true;
using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
{
smtp.Credentials = new System.Net.NetworkCredential("mymail@gmail.com", "mypassword");
smtp.EnableSsl = true;
smtp.Send(mail);
}
}
}
catch (Exception)
{
throw;
}
}
protected override async Task OnInitializedAsync()
{
SendMail();
artist = await storageService.GetItemAsync<Artist>("loggedUser");
}
}
相同的 c# 代码正在控制台应用程序上运行
【问题讨论】:
-
浏览器网页如何发送电子邮件?这是某种新的 HTML5 API 吗?!如果是这样,那么那些 W3C 的人就不会懈怠了!
-
Blazor 允许直接在浏览器上执行 c# 代码
-
不错,尝试在浏览器上执行这段C#代码
Process.Start("Notepad")会启动一个新的记事本进程吗? -
你的错误信息很干净
标签: c# asp.net email blazor blazor-client-side