2015-11-27 2 views
0

В настоящее время я управляю почтовыми ящиками с помощью cPanel. Я настроил почтовые ящики в cPanel, чтобы передать письма в PHP-скрипт. Я использую cPanel только для этой цели, поэтому я хочу избавиться от всего этого снаряжения.Как создать систему электронной почты на основе PHP?

Все, что мне нужно:

  • Создать почтовый сервер (здесь я предполагаю, что будет нужна PHP библиотека/приложение)
  • Создание учетной записи электронной почты/почтового ящика на сервере
  • электронной почты для каждый адрес электронной почты, полученные в почтовый ящик: запустить PHP скрипт, который обрабатывает байты

These PHP extensions полагаются на preexistant сервер электронной почты и учетной записи, поэтому, они сами по себе не достаточно.

От того, что я исследовал, по-видимому, мне нужно сделать это через командную строку PHP, с CLI или CGI, не уверен, какой из них.

Я работаю в VPS с LAMP CentOS, возможно, есть PHP-приложение или библиотека с открытым исходным кодом, которые могут быть реализованы здесь, только для конкретной задачи.

+0

Что вы подразумеваете под «предсуществующими учетными записями электронной почты/почтовыми ящиками»? Что вы подразумеваете под «Создать учетную запись электронной почты/почтовый ящик с PHP»? Конечно, типичное приложение действительно имеет доступ к некоторому существующему почтовому ящику, так как не имеет смысла реализовывать весь этот материал сервера в php! Поэтому обычно вы полагаетесь на сервер, получающий электронные письма и доступ к ним. Может быть, вы хотите уточнить, что именно вы на самом деле хотите сделать. – arkascha

+0

@arkascha, отредактировал контекст, хотя то, что вы цитировали, остается неповрежденным, потому что оно имеет больше смысла. – mikl

ответ

4

Извините, так сказать, но то, что вы собираетесь делать, не имеет никакого смысла.

Причина:

Чтобы иметь возможность получать и письмо доступа вы должны выполнить по крайней мере один полноценный сервер сети: SMTP-сервер для приема и либо дополнительные сервера для доступа к почтовому ящику, как сервер IMAP4 или похожие. Плюс все накладные расходы для шифрования, аутентификации, а также и ...

  • PHP не является языком, хорошо подходящим для такого проекта.
  • Объем работы, такой план, вероятно, в настоящее время недооценивается вами. Если вы посмотрите на существующие реализации, вы увидите, что они представляют собой довольно большие и сложные пакеты программного обеспечения. Я бы сказал, что реализация такого количества вещей займет очень хороший месяц программиста, если не годы.

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

Вместо этого я предлагаю вам работать в этом поле, приобретя отдельную систему, с которой вы можете работать, возможно, виртуальный частный сервер, который вы арендуете, включая имя домена и статический IP-адрес. Обратите внимание, что для некоторого веб-пространства с php нет. Затем вы устанавливаете типичные пакеты, некоторую операционную систему Linux, возможно, SMTP-сервер Postfix, сервер IMA Dovecot и все, что им требуется. Затем вы настраиваете этот материал, и если вы действительно преуспеваете и сможете фактически получать сообщения с помощью этой настройки, , то - это время, чтобы вернуться к этому вопросу. Я бы ожидать две вещи:

  1. вы узнали довольно много этим экспериментом и
  2. вы согласитесь, что ваш текущий план не имеет смысла.
+0

Я не собираюсь писать все это. Возможно, есть PHP/приложение PHP с открытым исходным кодом для конкретной задачи создания сервера -> account -> получение писем, даже не нужно разбирать электронную почту, так как я получаю строку байтов, в которой я хорош. Наверное, я понятия не имею, о чем я говорю, но должен был сделать мою последнюю попытку. – mikl

+0

@mikl Мне не известно о такой «библиотеке», и я сомневаюсь, что есть такая вещь по тем же причинам: PHP не язык, подходящий для такой задачи. Это просто не имеет смысла. – arkascha

1

Для чтения писем в почтовом ящике я бы предложил использовать IMAP. Здесь электронные письма хранятся на сервере, а протокол IMAP позволяет получить доступ к электронным письмам на сервере.

Вы должны включить IMAP на сервере и использовать imap_open функцию [1]

Примером этого берется из php.net здесь:

<?php 
$mbox = imap_open("{imap.example.org:143}", "username", "password"); 

echo "<h1>Mailboxes</h1>\n"; 
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*"); 

if ($folders == false) { 
    echo "Call failed<br />\n"; 
} else { 
    foreach ($folders as $val) { 
     echo $val . "<br />\n"; 
    } 
} 

echo "<h1>Headers in INBOX</h1>\n"; 
$headers = imap_headers($mbox); 

if ($headers == false) { 
    echo "Call failed<br />\n"; 
} else { 
    foreach ($headers as $val) { 
     echo $val . "<br />\n"; 
    } 
} 

imap_close($mbox); 
?> 

С точки зрения создания новых учетных записей, если у вас есть форма ввода HTML для создания учетной записи на почтовом сервере. Очень хакерским решением будет использование PHP cURL для отправки переменных POST для создания новой учетной записи, хороший ответ на stackoverflow на эту тему здесь [2].

Когда вы отправляете информацию о регистрационной форме, вы по существу представляете серию переменных POST. Если вы не знакомы с cURL или базой HTTP-запросов, это может занять некоторое место.

Это, вероятно, будет связано с использованием cURL для входа на панель администратора какой-либо структуры управления, которую вы используете для почтового сервера. Если вы являетесь пользователем root на указанном почтовом сервере, для этого есть гораздо более приятные решения.

[1] http://php.net/manual/en/function.imap-open.php

[2] Passing $_POST values with cURL

+0

Извините, отредактированный вопрос. Хотя вы по-прежнему отвечаете на его важную часть, но я больше всего заинтригован, как создать почтовый сервер, потому что, как я уже упоминал, мне нужно избавиться от cPanel, и, конечно, я не буду использовать gmail или что-нибудь еще, потому что это было бы одно и то же: большая сложность и функциональность, которые мне не нужны, потому что мне просто нужно получать электронные письма и обрабатывать байты с помощью PHP. – mikl

+0

У вас есть root-доступ к серверу? Если это общий хостинг, вы не сможете избавиться от cpanel. Gmail не установлен на сервере, сервер будет перенаправлять письма на сервер gmail, к которым можно получить доступ, выполнив вход в gmail , см. Здесь https://apps.google.com/intx/en_my/products/gmail/ – par

+0

@ ParsaAkbani У меня есть доступ к корню. Но дело в том, что я должен создавать и управлять множеством разных учетных записей электронной почты, это не только одна учетная запись, каждая учетная запись отправляет электронные письма другому сценарию. Использование учетных записей gmail, вероятно, будет таким же или более сложным, чем использование cPanel (найма еще одной внешней службы), с другой стороны, если я создам свой собственный почтовый сервер, в конце он будет более сложным, чем два других варианта. Теперь я думаю о сохранении cPanel, но создаю и настраиваю учетные записи автоматически с помощью PHP, иначе мне сейчас придется иметь дело с графическим интерфейсом cPanel. – mikl

Смежные вопросы