- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ASP.NET 开发一个网站。我在那里向用户发送电子邮件。
目前我正在使用此代码向用户异步发送电子邮件。电子邮件正在后台发送。
public static void SendEmail(string Path, string EmailTo)
{
Thread emailThread = new Thread(delegate()
{
try
{
string body = string.Empty;
using (StreamReader reader = new StreamReader(Path))
{
body = reader.ReadToEnd();
}
MailMessage mail = new MailMessage();
mail.From = new MailAddress("test@test.com");
mail.To.Add(EmailTo);
mail.Subject = "Test email";
mail.Body += body;
mail.IsBodyHtml = true;
SmtpClient smtpClient = new SmtpClient("smtp.test.com");
smtpClient.Port = 587;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("test@test.com", "test");
smtpClient.EnableSsl = true;
smtpClient.SendCompleted += (s, e) =>
{
smtpClient.Dispose();
mail.Dispose();
};
try
{
smtpClient.Send(mail);
}
catch (Exception ex) { /* exception handling code here */ }
}
catch (Exception)
{
throw;
}
});
emailThread.IsBackground = true;
emailThread.Start();
}
所以上面的代码工作正常。但有一天我遇到了一个问题。当我同时按下发送按钮时,我的互联网连接中断了。所以电子邮件没有被解雇。这时我意识到这个电子邮件功能需要某种机制来对电子邮件进行排队并按照队列中的顺序将其一封一封地发送给用户。因此,如果有任何电子邮件未送达或网络出现故障,请重试。那么这个机制如何实现呢?
最佳答案
将电子邮件排队与发送分离。例如:
这是一个非常简单的示例,但您可以轻松地对其进行扩展。
关于asp.net - 如何在 ASP.NET 中创建电子邮件队列机制以防网络出现故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195811/
我一直在此处和互联网上寻找一种解决方案,当查询未从数据库返回任何内容时,在 highcharts 的 DIV 上显示无数据图片。 mysql查询 $GetData= "SELECT COUNT( *
我正在用 C++ 编写一个记录器,为了简化输入行,我使用 vsnprintf 函数来构建日志行 void CLogger::RegManLog(const LogLevel & logLevelMas
我想创建一个输入 int 值的优先级列表。我知道该列表通常具有升序的自然顺序(如果我弄错了,请纠正我)。但作为新手,我想做的就是对相同的值进行排序。 假设我输入了值 3、6、4、1、2、4、7、4,我
我希望这张图片在左侧。 有什么帮助吗?? 最佳答案 @安尼施·米塔尔 我在这里描述您在两种布局中的问题解决方案: 1> 线性布局 这段代码放在主线性布局中
我正在开发一个网站,本质上需要大量的动态数据。我的服务器上无法承受如此庞大的数据,但有很多网站使用它。让我用一个例子来澄清。 假设网站 hotel.com 拥有所有酒店的列表。它允许用户使用ajax查
我需要编写一个 node.js 代码来启动 bitcoind 守护进程命令并继续监视它,如果它崩溃,进程应该重新启动。 我知道有命令行 npm 模块,例如 forever、forver-monitor
我想声明如下: var block = blocksById.FirstOrDefault(X => X.Value == tracResult.ID).Key 我的问题是如果我有 FirstOrDe
第一件事。希望我的标题没有误导。我尽力表达它。 现在,请看下面的代码。案例 1 非常简单。这两种情况都按预期工作。我的问题是为什么编译器允许案例 2?是否有需要的特定场景。我想不出一个。 interf
我是一名优秀的程序员,十分优秀!