C# 在Silverlight中创建IMAP客户端应用程序

C# 在Silverlight中创建IMAP客户端应用程序,c#,silverlight,silverlight-3.0,smtp,imap,C#,Silverlight,Silverlight 3.0,Smtp,Imap,我想使用Silverlight 3为我的学龄前儿童制作一个精简的电子邮件客户端,并从Gmail帐户中提取电子邮件 我会在Gmail中设置一些过滤器,这样只有一部分邮件会有一个特定的标签,类似于创建一个白名单。然后,我想将那些带有该标签的电子邮件发送到Silverlight客户端。我希望避免通过服务器运行任何消息(这样我就可以与朋友共享此应用程序,而不必让他们的电子邮件应用程序需要服务器) 我从来没有写过任何类型的电子邮件客户端(POP3或IMAP),也不确定这是否可能。通过查看可通过IMAP检索

我想使用Silverlight 3为我的学龄前儿童制作一个精简的电子邮件客户端,并从Gmail帐户中提取电子邮件

我会在Gmail中设置一些过滤器,这样只有一部分邮件会有一个特定的标签,类似于创建一个白名单。然后,我想将那些带有该标签的电子邮件发送到Silverlight客户端。我希望避免通过服务器运行任何消息(这样我就可以与朋友共享此应用程序,而不必让他们的电子邮件应用程序需要服务器)

我从来没有写过任何类型的电子邮件客户端(POP3或IMAP),也不确定这是否可能。通过查看可通过IMAP检索的各种库,我找不到使用Silverlight等浏览器受限客户端的参考

另外,我猜我将能够通过Silverlight中的.NET内置SMTP对象发送邮件,但还没有测试过


谁能给我指出正确的方向;告诉我为什么这可能可行,也可能不可行;或者讲述他们自己在这类挑战中的经历?

Silverlight还不允许任意套接字连接,您需要将其连接到特权端口143上的IMAP服务器。Silverlight只能连接到端口4502-4534上的服务器,即使使用客户端访问策略文件也是如此

您唯一的选择是通过这些端口上的服务器代理gmail,或者只在服务器上执行IMAP工作,并通过HTTP将其提供给客户端应用程序


对此很抱歉——增强的套接字支持一直在被关注,但它很可怕,还没有实现。祝您好运找到解决方案。

Silverlight尚不允许任意套接字连接,您需要将其连接到特权端口143上的IMAP服务器。Silverlight只能连接到端口4502-4534上的服务器,即使使用客户端访问策略文件也是如此

您唯一的选择是通过这些端口上的服务器代理gmail,或者只在服务器上执行IMAP工作,并通过HTTP将其提供给客户端应用程序


对此很抱歉——增强的套接字支持一直在被关注,但它很可怕,还没有实现。祝您好运找到解决方案。

这里有一个基于Silverlight的邮件客户端的好例子:

我经常用它来检查我的个人工作电子邮件,我知道它可以与GMail一起使用


希望对您有所帮助。

这里有一个基于Silverlight的邮件客户端的好例子:

我经常用它来检查我的个人工作电子邮件,我知道它可以与GMail一起使用


希望能有所帮助。

通过.NET通过SMTP发送邮件很容易,不过使用Gmail时,您需要检查是否支持使用STARTTLS的SMTP。问题是,随着开源协议的发展,IMAP相当复杂,因此一个好的库是必不可少的。我对Silverlight的了解还不够,无法发表评论,但中提到的任何C#库都可以使用吗?我不明白“我希望避免通过服务器运行任何消息”这一部分。如何在不通过服务器运行的情况下检索电子邮件?或者你说的是web服务器?@Manni,我想知道是否可以直接从Silverlight客户端与Gmail服务器通信,并在两者之间跳过我的服务器。通过.NET通过SMTP发送邮件很容易,不过使用Gmail时,你需要检查是否支持使用STARTTLS的SMTP。问题是,随着开源协议的发展,IMAP相当复杂,因此一个好的库是必不可少的。我对Silverlight的了解还不够,无法发表评论,但中提到的任何C#库都可以使用吗?我不明白“我希望避免通过服务器运行任何消息”这一部分。如何在不通过服务器运行的情况下检索电子邮件?或者你说的是web服务器?@Manni,我想知道是否有可能直接从Silverlight客户端与Gmail服务器通信,并在两者之间跳过我的服务器。很有趣。。。我猜他们正在将您的凭据(用户名和密码)拉到他们的服务器上,并通过服务完成工作。我只会把这个用在非常不重要的账户上。有趣的是。。。我猜他们正在将您的凭据(用户名和密码)拉到他们的服务器上,并通过服务完成工作。我只会把这个用在非常不重要的账户上。