ski*_*per 19 .net c# email push
我想在我的ASP.NET应用程序中获取具有特定CC收件人的所有电子邮件.要将此用于将来的电子邮件,我不想一直轮询来获取它们.但我找不到办法,如何使用push立即收到电子邮件.他们在C#中的任何框架都可以帮助我吗?
我想将我的应用程序连接到邮件服务器并注册方法"X".总是当新邮件到达邮件服务器时,我的应用程序必须得到通知,我的应用程序应该执行方法'X'.
我希望这可以用这样的代码:
void Application_Start()
{
...
ConnectWithTheSmtpServer();
RegisterMethodForNotification(DoSomethink);
...
}
void DoSomethink(Mail newMail)
{
// Do Somethink with the mail
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我用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...
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*son 17
你是从错误的角度接近这个.
SMTP不支持接收邮件(更不用说PUSH邮件)了.POP3是您可以用来检索邮件的,但它也不支持PUSH(因此您必须提取邮件).
该IMAP4 IDLE扩展是大部分称之为PUSH邮件-所以你需要找到一个支持IMAP4 IDLE C#库.我找到了一些可以让你朝着正确的方向前进的信息(没有理由在这里复制它):
选择需要支持IDLE的解决方案时请记住.我非常喜欢MailSystem.Net的外观,因为它满足您的要求.
请记住,您的邮件服务器还需要启用IMAP4和IMAP4 IDLE.有些邮件服务器不支持它,所以你可能运气不好(并且必须使用POP3拉动).