Как создать веб-клиент электронной почты с использованием PHP?

Я хотел бы узнать, как создать веб-клиент электронной почты на PHP (аналогичный Yahoo и gmail).

Кто-нибудь знает, как я могу с этим начать?

Я хочу, чтобы моя система могла отправлять и получать электронную почту.


person panidarapu    schedule 07.07.2009    source источник


Ответы (8)


Наиболее очевидным ответом будет "не": уже существует множество программного обеспечения для веб-почты, некоторые из которых основаны на PHP (если вы зависите от использования PHP, потому что у вас уже есть сервер на основе стека LAMP, например).

Процитирую только несколько имен, все на основе PHP, вы можете взглянуть на эти:

  • SquirrelMail: довольно старый и не очень сексуальный ... Но выполняет свою работу уже много лет.
  • Horde IMP: тоже хорошо знакомый и довольно мощный
  • roundcube: возможно, самый «сексуальный» и «веб 2.0» из списка тех, что я пробовал
  • AtMail: я никогда не пользовался этим, поэтому не могу ничего сказать ...

Я довольно давно пользуюсь тремя первыми из списка; roundcube определенно был самым "удобным", я бы сказал ...

(Немного погуглив, вы можете найти гораздо больше, но я думаю, что говорил о наиболее часто используемых)


Теперь, если вам нужно настроить веб-почту, скажем, для вашей компании: определенно используйте уже существующее программное обеспечение:

  • an existing software would be quite "good" already :
    • many people using it, which means many people who said "this could be done better", or "that is not user-friendly", or... you get the point ; all this made the existing software better :-)
    • многие люди попытаются взломать такое приложение - что означает множество исправлений безопасности, что означает, что приложение, вероятно, более безопасно, чем вы напишете через долгое время ...
  • an existing open-source application will represent hundreds of days of work
    • are you really ready to spend that kind of amount of time working on something that already exists ?
    • если вы работаете в компании: готова ли ваша компания платить вам за один год? или, возможно, даже больше? работает над чем-то, что уже существует?
    • ты мне не веришь? Прочтите это сообщение в блоге: Код: это тривиально; речь идет о stackoverflow, но это было бы точно так же для программного обеспечения веб-почты (за исключением того, что stackoverflow появился позже - и, вероятно, имел меньше разработчиков кода; но это просто дикая догадка ^^)

В качестве примечания: если ваша компания хочет, чтобы вы создали клон Gmail, вы не (то же самое: сколько людей работали над Gmail? Сколько программистов у вашей компании? Сколько ваша компания может потратить на это ?) ...
И всего за пару долларов в год ваша компания могла бы иметь "профессиональную" учетную запись Google для каждого из своих сотрудников, кстати ...


После всего этого, если вы все еще хотите / должны написать собственную веб-почту, сделанную вручную, с использованием стека LA * (M) * P, вам необходимо знать, по крайней мере, следующее:

  • Как программировать на PHP
  • Основы IMAP (даже если вы используете библиотеку / фреймворк, такое большое приложение потребует от вас некоторых знаний о базовых протоколах, или вы никогда не поймете «почему» или «как» что-то пошло не так)
  • HTML / CSS / Javascript (с некоторыми знаниями AJax - давай, это 2009 год!)
  • So your application is easier to maintain (and adding/reworking/modifying stuff and correcting bugs is possible), you will probably want to use some Framework, and follow some design patterns and best practices
    • As an example, you can take a look at Frameworks like symfony, or Zend Framework
    • Да, вы можете разрабатывать и применять без Framework и / или без MVC ... Но .. эээ ...

Учитывая, что все это не является проблемой (если вы уже не очень хорошо разбираетесь в этом и / или не имеете большого опыта, на это может потребоваться как минимум пара лет ... Учитывая программирование и веб-разработка - это ваша постоянная деятельность), вы можете начать думать о доступе к почтовому серверу, используя, например, IMAP.

Здесь есть несколько возможностей.
Я хотел бы взглянуть, по крайней мере, прежде чем выбирать, на эти два:


Как только ваше приложение будет готово, вы (надеюсь!) начнете привлекать пользователей, что означает как минимум три вещи:

  • Сообщения об ошибках; это почти всегда срочно для пользователей - например, «Боже, я не понимаю, что ничего больше не работает, мне нужно получить почту ПРЯМО СЕЙЧАС!»
  • Запросы на эволюцию: пользователи всегда хотят больше таких вещей, как «Я видел это в Gmail в моей личной учетной записи; почему у нас этого тоже нет с нашей корпоративной учетной записью? Это инструмент, который мы используем для работы! "
  • «Это слишком медленно, я не могу работать!»; затем молитесь, чтобы вы думали о масштабируемости и оптимизации при проектировании / разработке приложения!

Опять же, готовы ли вы с этим справиться?


Что ж, думаю, я сказал достаточно; Теперь пришло ваше время подумать: действительно ли вы хотите / вам нужно разрабатывать такое приложение с нуля?

Если у вас есть немного свободного времени, может быть, вы могли бы принять участие в уже существующем проекте с открытым исходным кодом? Это может быть выгодно для всех ;-)


И наконец, последнее: если вы хотите работать над таким проектом просто для удовольствия, чтобы узнать, что это такое, и узнать больше о веб-разработке, тогда ДЕЛАЙТЕ!
(Это, на мой взгляд, вероятно, единственная причина, по которой можно было бы работать над этим, кстати)


В любом случае удачи! И / или получайте удовольствие!

person Pascal MARTIN    schedule 27.07.2009
comment
Проблема в том, что большинство почтовых клиентов работают автономно. Если вы действительно хотите интегрировать электронную почту в свое приложение, у вас есть проблема. Ни одно из существующих решений не интегрируется хорошо или вообще. - person Scott M. Stolz; 23.05.2020

  1. Изучите веб-стек: HTML, javascript, php, mysql ...
  2. Напишите несколько небольших проектов
  3. Получите работу где-нибудь, чтобы учиться у более опытных людей
  4. Изучите ООП, шаблоны проектирования, лучшие практики и т. Д.
  5. Применяйте то, чему вы научились за несколько лет

Если вы пройдете пункт 5, вы будете знать, как его построить.

person Paul Grigoruta    schedule 07.07.2009

Вы можете довольно легко создать простой, используя функции PHP IMAP, но если вам нужно спросить, это может быть немного сложно для вас.

Думали ли вы об использовании готового:

person Greg    schedule 24.07.2009

Это ОГРОМНЫЙ вопрос!

Ваши основные варианты:
1. Прямая интеграция вашего кода с существующим почтовым сервером
2. Использование IMAP и SMTP для связи с существующим почтовым сервером

Номер 2 является наиболее простым, потому что вы можете изменить почтовые серверы, если вам когда-нибудь понадобится.

и да, есть еще много чего нужно учитывать по ходу дела

person Dave Archer    schedule 07.07.2009

Настройте учетную запись электронной почты, к которой можно получить доступ через POP (пример: gmail). Затем используйте функции PHP IMAP для получения электронной почты по протоколу POP (POP, вероятно, проще, чем IMAP) (http://us2.php.net/imap). Для отправки почты используйте функции PHP Mail (http://us2.php.net/mail) .

person pbreitenbach    schedule 23.07.2009

Если вы не используете внешнюю почтовую службу (например, Gmail), вам необходимо настроить собственный сервер для хранения и отправки электронной почты. Вот руководство по использованию Postfix (для отправки почты) и Dovecot (для доступ к почте через IMAP). В этом руководстве также объясняется настройка системы веб-почты в SquirrelMail. Вы можете сделать это или, если вы действительно хотите разработать свою собственную систему, вы можете написать приложение PHP для доступа к вашей почте.

Удачи!

person DLH    schedule 24.07.2009

Наиболее очевидный ответ должен быть «отлично».

Я согласен. С нынешним так называемым самым привлекательным интерфейсом, с которым мы застряли, ясно, что нам нужно что-то другое. Для тех, кто думает, мне нравится изобретать колесо: я не умею! Я только что установил новый сайт и очень доволен результатом. Я в основном потратил тысячи часов на бесплатную работу разработчиков и не хотел бы заново изобретать то, что было сделано раньше, в 1000 раз лучше. Я бы придумал сайт на 10% от того, что у меня есть прямо сейчас, и потратил бы в 10 раз больше. Отличная планировка, отличный функционал. У меня есть аутентификация, социальная сеть типа face-book, личная зона для меня и моей семьи для хранения файлов, повестка дня, поддержка фото и видео, интеграция с YouTube, интеграция с facebook, ... У меня будет больше, я добавлю игры и т. д. Все почти бесплатно (я потратил около 100 долларов на социальную сеть типа facebook). Как: joomla. Открытый исходный код, множество плагинов. Сотни тысяч работ разработчиков, дизайнеров, тестировщиков и т. Д. Я никогда не смогу сделать это сам и не смогу платить вечно. Но это бесплатно, так что мне и не пришлось. И между прочим: joomla - лишь одна из многих cms с открытым исходным кодом.

Чего я не могу найти, так это подходящего почтового веб-клиента, который "сексуален" и который должным образом интегрируется в систему cms. Я нашел и купил обертку roundcube, чтобы подключиться к моему замечательному веб-сайту. Но, к сожалению, этот старомодный веб-клиент электронной почты просто не подходит. Медленно, взаимодействие глупое, нужно покупать дорогие шаблоны, чтобы они работали с мобильными устройствами. Он просто не подходит. Он выглядит старым.

Joomla поставляется с множеством бесплатных вещей, плагинами, аутентификацией, адресными книгами, несколькими языками, шаблонами, поддержкой мобильных устройств - ВСЕМ, что вам нужно для правильного веб-сайта. Просто нужно немного усилий, чтобы склеить все вместе (без разработки программного обеспечения).

Сейчас я буду работать над плагином для взаимодействия с моим почтовым сервером, и это будет сделано в кратчайшие сроки.

Не изобретайте заново, но и не впадайте в депрессию.

person Jo Witters    schedule 08.10.2013