【问题标题】:Office365 30 emails per minute limite problem .NetOffice 365 每分钟 30 封邮件限制问题.Net
【发布时间】:2022-10-04 17:29:33
【问题描述】:

我最近遇到了 Office 365 每分钟 30 封邮件的限制问题,我提出这个问题是为了寻找其他解决方案,并展示我为克服每分钟 30 封邮件限制所做的解决方案。

【问题讨论】:

    标签: .net email office365 limit


    【解决方案1】:

    对于每分钟 30 封邮件的问题,您只需创建 Queue 后台服务即可解决:enter link description here

    然后,您可以创建一个继承自 QueuedHostedService 的类 EmailQueuedHostedService 并覆盖 BackgroundProcessing 方法,如下所示:

    public class EmailQueuedHostedService : QueuedHostedService
    {
        private readonly ILogger<EmailQueuedHostedService> _logger;
        private readonly TimersTimer _timer;
        private int MailsSent = 0;
        private const int MailsSentInMinute = 30;
    
        public EmailQueuedHostedService(IBackgroundTaskQueue taskQueue,
            ILogger<EmailQueuedHostedService> logger) : base(taskQueue, logger)
        {
            _logger = logger;
            _timer = new TimersTimer(60 * 1000);
            _timer.Elapsed += (sender, e) => MailsSent = 0;
            _timer.Start();
        }
    
        protected override async Task BackgroundProcessing(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                if (MailsSent < MailsSentInMinute)
                {
                    var workItem = await TaskQueue
                        .DequeueAsync(stoppingToken);
    
                    try
                    {
                        await workItem(stoppingToken);
    
                        MailsSent++;
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex,
                            "Error occurred executing {WorkItem}.", nameof(workItem));
                    }
                }
            }
        }
    }
    

    现在,您的电子邮件队列服务将控制每分钟发送的电子邮件数量,因此如果您超过限制,它们不会抛出异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 2017-11-16
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多