我的ASP.Net代码可以从sendgrid得到确认邮件已发送吗?
发布时间:2020-12-15 20:16:21 所属栏目:asp.Net 来源:网络整理
导读:我在我的应用程序中使用了我使用的代码: private async Task configSendGridasync(IdentityMessage message) { var myMessage = new SendGridMessage(); myMessage.AddTo(message.Destination); myMessage.From = new System.Net.Mail.MailAddress( "a@b.co
|
我在我的应用程序中使用了我使用的代码:
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"a@b.com","AB Registration");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
ConfigurationManager.AppSettings["mailAccount"],ConfigurationManager.AppSettings["mailPassword"]
);
// Create a Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
这里叫: public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
var user = new ApplicationUser()
{
Email = model.Email,FirstName = model.FirstName,LastName = model.LastName,RoleId = (int)ERole.Student,UserName = model.UserName
};
var result = await UserManager.CreateAsync(user,model.Password);
if (result.Succeeded)
{
var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = model.Server +
"/index.html" +
"?load=confirmEmail" +
"&userId=" + user.Id +
"&code=" + HttpUtility.UrlEncode(code);
await UserManager.SendEmailAsync(user.Id,"Confirm your account","Please confirm your account by clicking this link: <a href="" + callbackUrl + "">link</a>");
}
if (!result.Succeeded)
{
return GetErrorResult(result);
}
return Ok();
}
有什么办法可以从sendgrid确认邮件已经发送还是其他信息? 解决方法
通过SendGrid Web API发送的电子邮件是异步的,所以要确认,您需要实现一个webhook.
Event Webhook将会将您选择的活动发布到您定义的URL.在这种情况下,您对“交付”事件感兴趣.
您将需要服务器上的一些代码来处理传入的webhook,并根据结果执行任何逻辑,例如记录传递的事件.有几个社区提供的图书馆,让您轻松创建一个webhook处理程序.我建议sendgrid-webhooks,这是在nuget上可用. 然后取出传入的POST并将其传递给解析器以获取对象. 由于您使用ASP.NET MVC,因此您可以使用控制器内的[HttpPost]方法从SendGrid接收POST数据.然后可以使用sendgrid-webhooks来解析它. 从sendgrid-webhooks readme: var parser = new WebhookParser(); var events = parser.ParseEvents(json); var webhookEvent = events[0]; //shared base properties webhookEvent.EventType; //Enum - type of the event as enum webhookEvent.Categories; //IList<string> - list of categories assigned ot the event webhookEvent.TimeStamp; //DateTime - datetime of the event converted from unix time webhookEvent.UniqueParameters; //IDictionary<string,string> - map of key-value unique parameters //event specific properties var clickEvent = webhookEvent as ClickEvent; //cast to the parent based on EventType clickEvent.Url; //string - url on what the user has clicked 我在SendGrid工作,所以请让我知道,如果有什么我可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – C#lock关键字,我想我用错了
- 在ASP.Net MVC中访问“应用程序”对象来存储应用程序范围的
- asp.net-mvc – asp.net mvc提交时的表单集合
- 如何在ASP.NET MVC中实现Disqus?
- asp.net-mvc – 看起来你忘了注册HTTP模块与Windsor城堡与I
- asp.net-mvc-3 – Asp.Net MVC 3 – @ Html.Action不会呈现
- [你必须知道的.NET] 第八回:品味类型---值类型与引用类型(
- asp.net-mvc – 为什么validateantiforgerytoken cookie值和
- asp.net-mvc-4 – IE 10 Windows身份验证中的异步KendoUI上
- asp.net – 是否可以访问配置文件而不更新LastActivityDate
推荐文章
站长推荐
- forms-authentication – ASP.NET MVC5应用程序在
- 在netcore中实现字段和属性注入
- asp.net-mvc-3 – MVC视图的命名空间问题 – Raz
- asp.net – 如何为同一个按钮运行客户端和服务器
- asp.net-mvc – 与Ninject集成测试
- asp.net – Web部署项目AfterBuild路径问题
- asp.net-mvc – 我的剃刀视图的自定义基页类型,如
- asp.net-mvc – Asp.Net MVC使用来自JQuery UI选
- asp.net-mvc – 从MVC Controller导出到CSV,View
- asp.net-mvc – ASP.NET MVC:正确的地方为部分视
热点阅读
