2012-04-30 37 views
0

我们有一个网站,要求用户注册和他们再收到一封激活邮件方法的网络解决方案

我们现在这样做的方法包括注册线程内的整个电子邮件的过程中发出的激活邮件本身即

Register() { 
    registerUser() 
    sendActivationMail() 
    return View(Successpage) 
} 

凡sendActivationMail则包含了所有必要的代码连接到我们的邮件服务器和发送电子邮件等。我们知道这是不是做到这一点的最好办法,而我们只是做这个快速测试一切都完了。问题很明显,用户最后等待“感谢您注册页面”的时间更长,因为只有在完成其他所有内容后才返回页面。

,我们是知道的这个正确选项是:

  1. 启动一个新的线程来发送邮件一旦注册的数据库端完成,立即返回原来的线程。
  2. 坚持的电子邮件数据库,并有运行contiounously和检查数据库新邮件每x分钟
  3. 使用第三方电子邮件服务发送诸如亚马逊简单电子邮件服务的线程。

是否有其他方法可用?以上任何一项都是最好的吗?

在此先感谢您的帮助。

回答

2

我们使用数据库对消息进行排队,并且我有一个连续运行的服务应用程序,并检查队列并将其发送出去。我们有一堆发送电子邮件的Web应用程序,所以它们都放入队列中。这对我们很有用。我确信它有优点和缺点,但就像我说的那样,它对我们很有用。

1

这取决于您的需求。

方法2的优点是,如果发送失败,您可以重试/决定做什么。

与DB类似的另一种方法是某些队列基础结构,如MSMQ或其他。