Репозиторий электронной почты на PHP с использованием CC - PullRequest
0 голосов
/ 06 ноября 2011

Мне нужна система для регистрации определенных сообщений электронной почты, чтобы они также могли отображаться в Интернете. Я хотел бы, чтобы это было как можно проще, поэтому хотел бы спросить, знает ли кто-нибудь о существующем решении, прежде чем я сам начну его создавать. Мне также интересна любая информация, которая может помочь мне создать этот инструмент, если решение еще не существует.

В идеале я хотел бы просто настроить адрес электронной почты, скажем, например, log-me@mydomain.com, который будет использоваться только для этой цели, поэтому не требуется никакой сложной сортировки / разбора Из ЧЕГО сообщения следует хранить, можно предположить, что любые сообщения, полученные на этот адрес электронной почты, должны регистрироваться. Я буду выполнять функции администратора / модератора после добавления сообщений в базу данных. Я хочу иметь возможность написать электронное письмо, скопировать адрес log-me@mydomain.com в поле CC / BCC и заставить систему записывать электронное письмо, когда оно получено. У меня также нет проблем с планированием запуска процесса через определенные промежутки времени, я уже использую несколько таких сценариев.

Итак, если подумать, если системы для такого типа вещей уже нет, и мне нужно собрать ее самостоятельно, все, что мне действительно нужно, - это способ доставки электронной почты через pop3 в базу данных mysql, желательно сохранить любое HTML-форматирование, которое может содержать электронное письмо, остальное я уже знаю, как это сделать.

Я искал в Интернете решение, и мне не повезло, поэтому любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

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

Если почтовый сервер находится в другом месте и у вас есть доступ по протоколу POP3 или IMAP, вы можете запланировать что-тозабирать почту периодически.Один из вариантов в этом случае - fetchmail.fetchmail может подключиться к серверу POP3 и передать сообщение электронной почты в сценарий.Другой вариант - написать PHP-скрипт, который делает это напрямую, используя расширение IMAP / POP3 .В любом случае вы можете запланировать его периодическую работу с помощью cron.

0 голосов
/ 06 ноября 2011

Итак, я нашел это письмо в БД: http://www.phpclasses.org/discuss/package/3324/

Он работает точно так же, как я искал, и теперь я могу делать то, что мне нужно, с информацией, однажды сохраненной в БД.

В пакете есть небольшая ошибка. Адрес «от» отображается в БД как адрес «от» и «до». Вот код, который необходимо изменить в классе:

1. if(is_array($from)){
2.  foreach ($from as $id => $object) {
3.    $fromname = $object->personal;
4.    $fromaddress = $object->mailbox . "@" . $object->host;
5.   }
6.  }
7.  
8. if(is_array($to)){
9.  foreach ($from as $id => $object) {
10.   $toaddress = $object->mailbox . "@" . $object->host;
11.  }
12. }

То, что $ в строке 9 в моем коде выше, должно быть изменено на $ на. Это исправит ошибку и отобразит правильный адрес в БД. Класс находится в одном файле, поэтому просто ищите:

if(is_array($to)){

чтобы найти код, который я разместил выше.

...