身份2.1电子邮件服务

时间:2014-12-12 06:56:05

标签: asp.net-mvc-5 email-integration sendgrid

我正在开发一个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,而是使用我应该使用的更好的资源吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

在Sendgrid文档的某个地方(现在不能找到它)我已经看到建议如果你使用他们的REST API端点而不是SMPT,电子邮件将更快到达。 Sendgrid提供C#库来使用他们的API。试一试。

答案 1 :(得分:0)

可能的SendGrid推迟或延迟您的发送。您的SendGrid信息中心是否有任何延迟或延迟活动?

您还可以连接到SendGrid Webhook Events,查看电子邮件的确切内容。