我正在开发一个MVC 5互联网应用程序,并希望在我的应用程序部署到SendGrid
时使用Azure
服务发送电子邮件。
我找到了一些资源链接,但我使用的每个不同的代码实现都非常缓慢地发送电子邮件。我选择使用此链接中的代码:http://www.codeproject.com/Articles/762427/ASP-NET-Identity-Setting-Up-Account-Validation-and
这是我的代码:
public class EmailService : IIdentityMessageService
{
public Task SendAsync(IdentityMessage message)
{
// Credentials:
var sendGridUserName = "myusername";
var sentFrom = "test@email.com";
var sendGridPassword = "mypassword";
// Configure the client:
var client =
new System.Net.Mail.SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));
client.Port = 587;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
// Creatte the credentials:
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential(sendGridUserName, sendGridPassword);
client.EnableSsl = true;
client.Credentials = credentials;
// Create the message:
var mail =
new System.Net.Mail.MailMessage(sentFrom, message.Destination);
mail.Subject = message.Subject;
mail.Body = message.Body;
// Send:
return client.SendMailAsync(mail);
}
}
电子邮件需要很长时间才能发送。为什么是这样?电子邮件的平均发送速度有多快,我是否需要以任何方式优化我的代码?另外,不是使用SendGrid
,而是使用我应该使用的更好的资源吗?
提前致谢。
答案 0 :(得分:3)
在Sendgrid文档的某个地方(现在不能找到它)我已经看到建议如果你使用他们的REST API端点而不是SMPT,电子邮件将更快到达。 Sendgrid提供C#库来使用他们的API。试一试。
答案 1 :(得分:0)
可能的SendGrid推迟或延迟您的发送。您的SendGrid信息中心是否有任何延迟或延迟活动?
您还可以连接到SendGrid Webhook Events,查看电子邮件的确切内容。