如何使用PHP构建基于Web的电子邮件客户端?

pan*_*apu 24 php email-client

我想学习如何在PHP中构建基于Web的电子邮件客户端(类似于yahoo和gmail).

有谁知道我怎么能开始这个?

我希望我的系统能够发送和接收电子邮件.

Pas*_*TIN 84

最明显的答案是" 不要 ":已经有很多webmail软件,其中一些是基于PHP的(如果你依赖于使用PHP,因为你已经有一个基于LAMP堆栈的服务器).

要引用几个名称,所有基于PHP的名称,您可以看看这些名称:

  • SquirrelMail:一个相当老的,并不是很性感......但是多年来一直在做这个工作
  • 部落IMP:知名度也很强大
  • roundcube:也许是我试过的那些名单中最"性感"和"web 2.0"
  • AtMail:我从未使用过这个,所以我不能说更多......

我已经用了很长一段时间了三个名单.圆形立方体绝对是最" 用户友好 "的,我会说......

(谷歌搜索,你可能会发现更多 - 但我想我谈到了最常用的那些)


现在,如果你必须为你的公司设置一个Webmail:明确地使用一些现有的软件:

  • 现有的软件已经非常" "了:
    • 许多人使用它,这意味着许多人说" 这可以做得更好 ",或" 这不是用户友好的 ",或者......你明白了; 所有这些使现有软件更好:-)
    • 很多人都试图打破这样的应用程序 - 这意味着许多安全修复程序,这意味着应用程序可能比你长时间写的更安全......
  • 现有的开源应用程序将代表数百天的工作
    • 你真的准备好花那么多时间在已经存在的东西上工作吗?
    • 如果你在一家公司工作:贵公司是否愿意支付一年的费用?甚至可能更多?研究已经存在的东西?
    • 你不相信我吗?阅读此博客文章:代码:这是微不足道的 ; 它是关于stackoverflow的,但它对于一个webmail软件来说完全相同(除了stackoverflow更新 - 并且可能只有更少的代码贡献者;但这只是一个疯狂的猜测^^)

作为旁注:如果你的公司希望你构建一个gmail的克隆,你就不会(同样的事情:有多少人在使用gmail?你的公司有多少程序员?你的公司可以花多少钱?). ..
每年只需几美元,贵公司就可以拥有一个" 专业 "谷歌账户,每个人的雇员,顺便说一下......


毕竟,如果您仍然希望/必须使用LA*(M)*P堆栈编写自定义手工制作的Webmail,您至少需要知道以下内容:

  • 如何在PHP中编程
  • IMAP的基础知识(即使您使用库/框架,这么大的应用程序将要求您了解有关底层协议的一些内容,或者不会理解"为什么"或"如何"出错的方法)
  • HTML/CSS/Javascript (有一些AJax的知识 - 来吧,它是2009年!)
  • 因此,您的应用程序更易于维护(并且可以添加/重新修改/修改内容并纠正错误),您可能希望使用某些框架,并遵循一些设计模式和最佳实践

考虑到所有这一切都不是问题(如果你已经不是很擅长这一点,并且/或者没有太多经验,那么至少需要几年的时间来获得它...考虑编程和网络开发是您的全职活动),您可以开始使用例如IMAP来访问邮件服务器.

这里有几种可能性.
在选择之前,至少我会看看这两个:


一旦你的应用程序完成,你将(希望!)开始获得用户,这意味着至少有三件事:

  • 错误报告; 那些对用户来说几乎总是紧急的 - 比如" OMG我不明白什么都不行了,我现在就收到我的邮件! "
  • 对变革的要求:用户总是想要更多的东西,比如" 我在个人账户上看到了gmail;我们的企业账户怎么也没有?这是我们用来工作的工具! "
  • " 这太慢了,我无法工作! "; 然后,在设计/开发应用程序时,请您考虑可扩展性和优化!

在这里,你准备好了吗?


好吧,我想我已经说够了; 现在,是时候思考:你真的想要/需要从头开发这样的应用程序吗?

如果你有一点空闲时间,也许你可以参加一个已经存在的开源项目?这对每个人都有利可图;-)


最后,最后一件事:如果你想在这样的项目上工作只是为了好玩,知道它是什么样的,并且想要了解更多关于网络开发的知识,那么DO!
(在我看来,这可能是证明这一点的唯一原因,顺便说一句)


无论如何,祝你好运!和/或玩得开心!


Pau*_*uta 29

  1. 学习Web堆栈:HTML,javascript,php,mysql ......
  2. 写一些小项目
  3. 从某个地方受聘,向更有经验的人学习
  4. 学习OOP,设计模式,最佳实践等
  5. 应用你学到的东西几年

如果你通过第5点,你就会知道如何建立一个.


Gre*_*reg 7

您可以使用PHP IMAP函数轻松构建一个简单的函数,但如果您不得不问,那么对您来说可能有点复杂.

您是否考虑过使用预建的: