为客户端应用程序获取邮件的最佳方式是啥?

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。

【讨论】:

以上是关于为客户端应用程序获取邮件的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

为自动电子邮件脚本存储帐户凭据(尤其是密码)的最佳方式是啥?

通过 C# 网页发送大量电子邮件的最佳方式是啥?

为有关餐厅的程序存储数据的最佳方式是啥?

在 Web 应用程序中获取构建信息的最佳方式是啥?

在 Rails 4 应用程序中显示位置的最佳方式是啥?

.NET 客户端应用程序连接到 WebSocket 服务器的最佳方式是啥?