为客户端应用程序获取邮件的最佳方式是啥?
Posted
技术标签:
【中文标题】为客户端应用程序获取邮件的最佳方式是啥?【英文标题】:What is the best way to fetch mails for a client app?为客户端应用程序获取邮件的最佳方式是什么? 【发布时间】:2017-06-08 08:45:40 【问题描述】:我正在为 ios 创建一个电子邮件客户端,在开始工作之前,我想为它选择最佳架构。
例如,在第一阶段,我想连接 Gmail。我搜索并发现 Google 有一个现成的库可以执行此操作,因此我可以连接该库并获取我的电子邮件。
另一种方法是从我的网络服务器中的 API 获取电子邮件,然后再从我的服务器中获取这些电子邮件。
主要目的不仅仅是获取电子邮件,还可以在以后添加一些新的过滤器或其他一些功能,也许是机器学习技术以实现更好的个性化等。
另外,我想支持多个电子邮件服务器(Gmail、Yahoo、Hotmail 等)
您建议我选择什么,从我自己的服务器或直接从电子邮件服务器获取?我也了解使用自己的服务器时的安全问题。
您的反馈对我有很大帮助!提前致谢!
【问题讨论】:
【参考方案1】:您不应使用自己的服务器来执行此任务。你只是不需要它。它不太安全,我敢肯定,您的一些客户会不喜欢这样一个事实,即您可以将他们的邮件存储在您自己的服务器上。
如果您想支持多个电子邮件服务器提供商,那么您应该使用 IMAP 协议来接收邮件并使用 SMTP 来发送。此外,在某些情况下,您可以使用 OAuth2 作为身份验证方法,因此您无需要求用户在您的应用程序中输入他的凭据。
我建议您使用一些开源库来处理 IMAP 和 SMTP,因为自行实现这些协议可能很复杂。
【讨论】:
【参考方案2】:听起来和我做的很相似。我最近在构建PickedMail,其中后端是重型 AI。对于 Google,您需要使用 Oauth2 并使用 server_token 传递到您的服务器。
我为此创建了一个 iOS 框架,希望对您有所帮助。 https://github.com/Thywis/MultiAccountOauth
对于 Outlook、yahoo、iCloud 等其他用户,我建议现在使用 IMAP。
【讨论】:
以上是关于为客户端应用程序获取邮件的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章