【发布时间】:2011-11-13 13:44:10
【问题描述】:
我想在我的 ASP.NET 应用程序中获取所有具有特定 CC 收件人的电子邮件。为了将它用于未来的电子邮件,我不想一直轮询来获取它们。但我找不到方法,如何使用推送来立即获取电子邮件。他们有 C# 中的任何框架来帮助我吗?
我想将我的应用程序连接到邮件服务器并注册一个方法“X”。总是当有新消息到达邮件服务器时,我的应用程序必须得到通知并且我的应用程序应该执行方法'X'。
我希望这样的代码可以实现:
void Application_Start()
{
...
ConnectWithTheSmtpServer();
RegisterMethodForNotification(DoSomethink);
...
}
void DoSomethink(Mail newMail)
{
// Do Somethink with the mail
}
编辑:
我用MailSystem.Net 做到了。它工作得很好,也很容易实现。
示例代码:
void Application_Start()
{
var worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(StartIdleProcess);
if (worker.IsBusy)
worker.CancelAsync();
worker.RunWorkerAsync();
}
private void StartIdleProcess(object sender, DoWorkEventArgs e)
{
if (_imap != null && _imap.IsConnected)
{
_imap.StopIdle();
_imap.Disconnect();
}
_imap = new Imap4Client();
_imap.ConnectSsl(server-name, 993);
_imap.Login(username, passwort);
var inbox = _imap.SelectMailbox("INBOX");
_imap.NewMessageReceived += new NewMessageReceivedEventHandler(NewMessageReceived);
inbox.Subscribe();
_imap.StartIdle();
}
public static void NewMessageReceived(object source, NewMessageReceivedEventArgs e)
{
// Do something with the source...
}
【问题讨论】:
-
如果你想要服务器推送功能(实时推送,推送通知)并且你想自己托管,那么你应该看看: * WebSync * XSockets * Pokin 如果你不想安装和管理您自己的实时基础架构,那么您可以查看我为之工作的Pusher。您可以使用我们的.NET library 并简单地调用我们的 REST API,然后将电子邮件/通知推送到任何监听客户端。也值得看看我的 [re
-
如何在 Web 解决方案中实现?