如何在ASP.NET中异步发送新闻通讯(批量电子邮件)

露西亚

我需要以异步方式向我的网站用户发送约5000封电子邮件作为时事通讯。.问题是我不知道异步发送它们的最佳方法..请帮助我更新代码以使其异步

我的代码:

   public string SendEmail()
    {


        foreach (var emailAddress in EmailList)

        {
            var message = new MailMessage("[email protected]", emailAddress);

            message.Subject = "hi";
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.Credentials = new NetworkCredential("[email protected]", "*****");
            client.EnableSsl = true;
            client.Send(message);
        }
        return "done";
    }

谢谢露西

数字电视

看一下asyncandawait关键字。

https://msdn.microsoft.com/zh-CN/library/mt674882.aspx

C#中的async和await关键字是异步编程的核心。通过使用这两个关键字,您可以使用.NET Framework或Windows Runtime中的资源来创建异步方法,几乎​​就像创建同步方法一样容易。通过使用async和await定义的异步方法称为异步方法。

MSDN解释了事物的语法方面。更大的顾虑是错误处理和可靠。将5,000封电子邮件发送到列表中并单击它们上的“发送”按钮有点乐观。这些电子邮件是否需要可靠地传递?如果其中有3,000个发送,并且网络错误突然导致到传出邮件服务器的临时连接丢失,会发生什么情况?重新启动后,您要重新发送全部5,000吗?只是忘记最后的2,000个?收件人是因为收到重复邮件而生气还是根本没有收到邮件?您将如何解决错误?

我发现一种非常有效的模式(无论是同步发送还是异步发送),都是生成消息并将每个消息存储在数据库表中,然后使用类似以下的内容:

public void SendAllEmails()
{
    var emails = SomeClass.GetAllUnsentEmails();

    foreach(Email message in Emails)
    {
        var success = SendEmail(message);

        if (!success)
        {
            // Do you want to do something if it fails?
        }
    }
}

public bool SendEmail(Email message)
{
    try
    {
        // 1. Send the email message
        // 2. Update the "SentOn" date in the database
        // 3. return true
    }
    catch(Exception ex)
    {
        SomeClass.CreateEmailErrorEntry(message, ex); // store error in a table or log
        return false;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4-如何通过delay_job发送类似新闻通讯的电子邮件?

来自分类Dev

如何在asp.net mvc4中发送电子邮件

来自分类Dev

在ASP.NET C#中异步发送电子邮件

来自分类Dev

使用codeigniter向所有新闻通讯成员发送电子邮件

来自分类Dev

使用codeigniter向所有新闻通讯成员发送电子邮件

来自分类Dev

在 asp.net 中自动发送发票电子邮件

来自分类Dev

如何在ASP.NET MVC中使用邮政将电子邮件发送到数据库中的多个电子邮件地址

来自分类Dev

如何在特定时间自动发送电子邮件ASP.NET

来自分类Dev

如何在prestashop中默认选中“新闻通讯”复选框?

来自分类Dev

如何使用ASP .NET MVC 5将内容添加到Mailjet API v3中的新闻通讯中

来自分类Dev

如何从Firebase控制台发送批量电子邮件?

来自分类Dev

如何通过Phpmailer发送批量电子邮件

来自分类Dev

在新闻通讯中实现退订链接,当我使用亚马逊SES发送电子邮件时,内部功能是什么

来自分类Dev

如何在ASP.net vb.net中获取当前用户ID的电子邮件

来自分类Dev

在ASP网络中发送电子邮件异步失败

来自分类Dev

如何在asp.net中显示HTML电子邮件

来自分类Dev

如何在ASP.NET Core中在电子邮件上进行动态链接

来自分类Dev

如何在ASP.NET Core中自动化电子邮件触发器

来自分类Dev

如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

来自分类Dev

如何在ASP.NET Membership中设置当前用户的电子邮件地址?

来自分类Dev

如何在ASP.NET WebAPI确认电子邮件的URL中编码字符?

来自分类Dev

如何在asp.net mvc中验证PayPal企业电子邮件是否正确

来自分类Dev

如何在电子邮件发送中启用HTML

来自分类Dev

如何在通过电子邮件表格发送的电子邮件中创建响应链接?

来自分类Dev

使用Symfony Messenger异步发送电子邮件时如何翻译电子邮件?

来自分类Dev

在asp.net中发送电子邮件发送密码而不是电子邮件

来自分类Dev

如何使用vb.net中的默认电子邮件客户端发送带有附件的电子邮件

来自分类Dev

如何在asp.net mvc应用程序中使用Gmail SMTP发送电子邮件?

来自分类Dev

如何在2个小时的ASP Net Core之前向用户发送事件提醒电子邮件

Related 相关文章

  1. 1

    Rails 4-如何通过delay_job发送类似新闻通讯的电子邮件?

  2. 2

    如何在asp.net mvc4中发送电子邮件

  3. 3

    在ASP.NET C#中异步发送电子邮件

  4. 4

    使用codeigniter向所有新闻通讯成员发送电子邮件

  5. 5

    使用codeigniter向所有新闻通讯成员发送电子邮件

  6. 6

    在 asp.net 中自动发送发票电子邮件

  7. 7

    如何在ASP.NET MVC中使用邮政将电子邮件发送到数据库中的多个电子邮件地址

  8. 8

    如何在特定时间自动发送电子邮件ASP.NET

  9. 9

    如何在prestashop中默认选中“新闻通讯”复选框?

  10. 10

    如何使用ASP .NET MVC 5将内容添加到Mailjet API v3中的新闻通讯中

  11. 11

    如何从Firebase控制台发送批量电子邮件?

  12. 12

    如何通过Phpmailer发送批量电子邮件

  13. 13

    在新闻通讯中实现退订链接,当我使用亚马逊SES发送电子邮件时,内部功能是什么

  14. 14

    如何在ASP.net vb.net中获取当前用户ID的电子邮件

  15. 15

    在ASP网络中发送电子邮件异步失败

  16. 16

    如何在asp.net中显示HTML电子邮件

  17. 17

    如何在ASP.NET Core中在电子邮件上进行动态链接

  18. 18

    如何在ASP.NET Core中自动化电子邮件触发器

  19. 19

    如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

  20. 20

    如何在ASP.NET Membership中设置当前用户的电子邮件地址?

  21. 21

    如何在ASP.NET WebAPI确认电子邮件的URL中编码字符?

  22. 22

    如何在asp.net mvc中验证PayPal企业电子邮件是否正确

  23. 23

    如何在电子邮件发送中启用HTML

  24. 24

    如何在通过电子邮件表格发送的电子邮件中创建响应链接?

  25. 25

    使用Symfony Messenger异步发送电子邮件时如何翻译电子邮件?

  26. 26

    在asp.net中发送电子邮件发送密码而不是电子邮件

  27. 27

    如何使用vb.net中的默认电子邮件客户端发送带有附件的电子邮件

  28. 28

    如何在asp.net mvc应用程序中使用Gmail SMTP发送电子邮件?

  29. 29

    如何在2个小时的ASP Net Core之前向用户发送事件提醒电子邮件

热门标签

归档