Какой оптимальный путь для приема писем и сохранения сообщений в MySQL?
Есть сервер с Centos 7. Задача: Сервер должен принимать письма с внешнего мира и сохранять эти письма в базу данных.
Подскажите, плз, какой путь оптимальный и простой?
P.S.: Я гуглил на этот счет.
И там вариантов разных тьма. Кто советует скриптом забирать почту и втыкать в базу данных.
Кто советует Exim и dbmail. Третьи пишут, что они глючные и т.д.
Дальше с этими письмами будет работать сайт, который находится на том же сервере.
Сайт будет обращаться к mysql базе забирать за нужный период письма.
Дополнительно их обрабатывать и т.д.
ну так а что мешает сайту работать с imap сервером?
Я не то, чтобы отговариваю... Но как вы собираетесь решать вопросы с аттачами?
Пусть будет еще один скрипт, который будет проходить по imap ящику, индексировать его и складывать в базу необходимую информацию. Ну а понадобится с телом письма работать - извлеките нужное письмо, и делайте, что надо...
Если "Пусть будет еще один скрипт, который будет проходить по imap ящику, индексировать его и складывать в базу необходимую информацию. " То зачем тогда imap? :)
Только лишнее звено получается.
А напрямую сайту работать с imap неудобно. Медленно. И потеря реляционной составляющей, которая есть в MySQL.
Scorry: Ну представьте у вас есть сайт, который должен каким-то образом получить почту, отфильтровать и обработать ее. Для меня самый лучший путь - это обращаться к MySQL базе и забирать почту оттуда. Каким образом ее туда доставить в этом и заключается вопрос.
самый простой способ - обратиться к ящику по IMAP, получить список сообщений, пройтись по списку, получить каждое сообщение, обработать.
при этом вы не заморачиваетесь с форматами писем, аттачами и прочим...
Ну и независимы - нужен другой ящик - указали сервер, логин и пароль - и хоть с gmail забирайте...
Scorry: , Руслан Федосеев: , ну хорошо. Вот я через IMAP принял почту. Для меня это не проблема.
Но дальше, допустим мне надо отсортировать письма прошлого месяца, от определенного отправителя, от определенного получателя, с определенной темой.
Хотите сказать, что в IMAP эта сортировка будет быстрее, чем с индексированными полями в MySQL?
Exim - это MTA.
Но и класть в MySQL он умеет из коробки.
А вот postfix чуть-чуть надо подключить модуль мускуль..
Но вам (я так понял), нужно POP3.
Если так, то Dovecot всё это и умеет.
POP3 - не нужен.
А можно ссылку как заставить exim складывать входящую почту в MySQL?
И ссылку на модуль postfix чтобы он мог сохранять входящие письма в MySQL?
Я ничего подобного найти не могу.
Nadz Goldman: Мне кажется, что вы даже не понимаете о чем идет речь.
По вашим ссылкам.
Найдите хоть одну статью, в которой шла бы речь о сохранении входящих сообщений.
Там используется MySQL совсем для других целей.
Входящая почта - это POP3 и dovecot
Исходящая почта - это SMTP и Exim.
Ссылки мною даны вам для того, что бы вы могли прикрутить мускуль к экзиму и не решить задачу, т.к. вы путаете мягкое с теплым.
Вы мне (да и всем интернетам) можете на пальцах объяснить свой бред про входящее сообщение на SMTP-сервере?
Входящее откуда? Поданное на вход?
Оно попадает в очередь на проверку, проходит все цепочки правил, после чего роутится в нужное место и правила отправки и после этого попадает в очередь отправки.
Вам это надо?
Или вы всё-таки переформулируете вопрос?
Вот есть у меня сервер myserver.com. На котором стоит postfix на 25 порту.
Я посылаю на него письмо с другого сервера:
sc5:~ # mail user@myserver.com
Subject: test
test
EOT
sc5:~ #
Письмо ушло.
Теперь если я зайду на свой сервер myserver.com, то увижу это письмо в файле:
/var/mail/user
Мне нужно, чтобы это письмо оказалось в mysql базе.