26

我想学习如何用 PHP 构建一个基于 Web 的电子邮件客户端(类似于 yahoo 和 gmail)。

有谁知道我该如何开始?

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

4

8 回答 8

87

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

仅引用几个名称,全部基于 PHP,您可以查看这些名称:

  • SquirrelMail:一个相当老的,不是很性感......但多年来一直在做这项工作
  • Horde IMP:也很有名,而且很强大
  • roundcube:可能是我尝试过的列表中最“性感”和“web 2.0”的
  • AtMail : 这个我没用过,不能多说。。。

很长一段时间以来,我一直使用列表中的三个第一;roundcube 绝对是最“用户友好”的,我想说...

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


现在,如果你必须为你的公司设置一个 Webmail:一定要使用一些已经存在的软件

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

作为旁注:如果您的公司希望您构建 gmail 的克隆,您不会(同样的事情:有多少人在 gmail 上工作?您的公司有多少程序员?您的公司可以在这方面花多少钱?)。 ..
每年只需几美元,您的公司就可以为每位员工拥有一个“专业”的 Google 帐户,顺便说一句...


毕竟,如果您仍然想/必须使用 LA*(M)*P 堆栈编写自定义的手工网络邮件,您至少需要了解以下内容:

  • 如何在 PHP 中编程
  • IMAP 的基础知识(即使您使用库/框架,如此大的应用程序也需要您了解一些有关底层协议的知识,或者永远不会理解“为什么”或“如何”出现问题)
  • HTML / CSS / Javascript (有一些 AJax 知识——加油,现在是 2009 年!)
  • 因此,您的应用程序更易于维护(并且可以添加/返工/修改内容和纠正错误),您可能希望使用一些框架,并遵循一些设计模式和最佳实践
    • 例如,您可以查看symfonyZend Framework等框架
    • 是的,您可以在没有框架和/或没有 MVC 的情况下开发和应用程序......但是............

考虑到这一切都不是问题(如果您在这方面还不是很擅长,和/或没有太多经验,则可能需要至少几年的时间才能获得...考虑编程和网络开发是您的全职活动),您可以开始考虑使用例如 IMAP 访问邮件服务器。

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


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

  • 错误报告;这些对用户来说几乎总是很紧急的——比如“天哪,我不明白什么都行不通了,我现在就得收到我的邮件!
  • 改进请求:用户总是想要更多的东西,比如“我在我的个人帐户的 gmail 中看到了这个;为什么我们的公司帐户也没有这个?这是我们用来工作的工具!
  • 这太慢了,我不能工作! ”; 然后,祈祷您在设计/开发应用程序时考虑可扩展性和优化!

再说一次,你准备好应对了吗?


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

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


最后,最后一件事:如果你只是为了好玩而从事这样的项目,想知道它是什么样的,并了解更多关于 web 开发的知识,那就去做吧!
(在我看来,这可能是唯一可以证明做这件事的理由,顺便说一句)


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

于 2009-07-27T21:27:01.823 回答
28
  1. 学习网络堆栈:HTML、javascript、php、mysql...
  2. 写几个小项目
  3. 在某个地方被聘用,向更有经验的人学习
  4. 学习 OOP、设计模式、最佳实践等
  5. 应用你几年学到的东西

如果您通过第 5 点,您将知道如何构建一个。

于 2009-07-07T14:43:27.550 回答
7

您可以使用 PHP IMAP函数非常轻松地构建一个简单的函数,但如果您必须询问,那么它对您来说可能有点复杂。

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

于 2009-07-24T20:21:22.437 回答
1

这是一个巨大的问题!

您的主要选择是
1. 直接将您的代码与现有邮件服务器集成
2. 使用 IMAP 和 SMTP 与现有邮件服务器通信

2 号是最直接的,因为您可以根据需要更改邮件服务器。

是的,还有很多事情要考虑

于 2009-07-07T14:44:15.113 回答
0

设置一个可以通过 POP 访问的电子邮件帐户(例如:gmail)。然后使用 PHP IMAP 函数通过 POP 协议检索电子邮件(POP 可能比 IMAP 更容易)(http://us2.php.net/imap)。要发送邮件,请使用 PHP Mail 函数 ( http://us2.php.net/mail )。

于 2009-07-23T15:30:29.137 回答
0

最明显的答案应该是“很棒”。

我同意。使用当前我们所坚持的所谓最性感的界面,很明显我们需要一些不同的东西。对于那些认为我喜欢发明轮子的人:我不喜欢!我刚刚安装了一个新网站,我对结果非常满意。我基本上使用了 1000 多个小时的免费开发人员工作,并且不愿意重新发明以前做过的东西,好 1000 倍。我会想出一个网站,它是我现在拥有的 10% 的网站,并且会花费 10 倍的时间。布局很棒,功能很棒。我有身份验证、facebook 类型的社交网络、我和我的家人存储文件的私人区域、议程、照片和视频支持、youtube 集成、facebook 集成......我会有更多,我会添加游戏, ETC。几乎都是免费的(我确实在 facebook-type-of-social 网络上花了大约 100 美元)。如何:joomla。开源,大量插件。成千上万的开发人员工作、设计师工作、测试人员等。我自己永远无法做到这一点,我也永远无法支付。但它是免费的,所以我不需要。顺便说一句:joomla 只是众多开源 cms 之一。

我找不到一个合适的基于 Web 的电子邮件客户端,它“性感”,并且在 cms 系统中正确集成。我找到并购买了一个圆形立方体包装纸,以插入我的精彩网站。但不幸的是,这个看起来很老的垃圾邮件网络客户端是不正确的。它很慢,交互很傻,你​​需要购买昂贵的模板才能使其与移动设备一起使用。它只是不适合。它看起来很旧。

Joomla 带有许多免费的东西、插件、身份验证、地址簿、多语言、模板、移动设备支持,所有你需要一个合适的网站。只需要一些努力将它们粘合在一起(无需软件开发)。

现在我将开发一个插件来与我的邮件服务器交互,然后我很快就完成了。

不要重新发明,但也不要沮丧。

于 2013-10-08T18:28:29.697 回答
0

如果您不使用外部邮件服务(如 Gmail),则需要配置自己的服务器来存储和发送电子邮件。这是使用 Postfix(用于发送邮件)和 Dovecot(用于通过 IMAP 访问邮件)的教程。本教程还介绍了在 SquirrelMail 中设置网络邮件系统。您可以这样做,或者,如果您真的想开发自己的系统,您可以编写一个 PHP 应用程序来访问您的邮件。

祝你好运!

于 2009-07-24T20:22:52.183 回答