Hidistro.Messages/Emails.cs
(完整代码) 2KBnamespace Hidistro.Messages
{
using Hidistro.Core.Configuration;
using Hidistro.Core.Entities;
using Hidistro.SqlDal.Store;
using Hishop.Plugins;
using System;
using System.Collections.Generic;
using System.Net.Mail;
using System.Threading;
public static class Emails
{
internal static void EnqueuEmail(MailMessage email, SiteSettings settings)
{
if (((email != null) && (email.To != null)) && (email.To.Count > 0))
{
new EmailQueueDao().QueueEmail(email);
}
}
public static void SendQueuedEmails(int failureInterval, int maxNumberOfTries, SiteSettings settings)
{
if (settings != null)
{
HiConfiguration config = HiConfiguration.GetConfig();
Dictionary<Guid, MailMessage> dictionary = new EmailQueueDao().DequeueEmail();
IList<Guid> list = new List<Guid>();
EmailSender sender = Messenger.CreateEmailSender(settings);
if (sender != null)
{
int num = 0;
short smtpServerConnectionLimit = config.SmtpServerConnectionLimit;
foreach (Guid guid in dictionary.Keys)
{
if (Messenger.SendMail(dictionary[guid], sender))
{
new EmailQueueDao().DeleteQueuedEmail(guid);
if ((smtpServerConnectionLimit != -1) && (++num >= smtpServerConnectionLimit))
{
Thread.Sleep(new TimeSpan(0, 0, 0, 15, 0));
num = 0;
}
}
else
{
list.Add(guid);
}
}
if (list.Count > 0)
{
new EmailQueueDao().QueueSendingFailure(list, failureInterval, maxNumberOfTries);
}
}
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
