Почтовый клиент Linux, который может инициировать Сценарий PHP для парсинга полученного электронного письма

Аппаратные средства управления на проводном аудиовыходе обрабатываются звуковой картой, если бы вообще, и случается так, что драйвер, на который необходимо было бы посмотреть.

0
27.06.2013, 13:55
4 ответа

Ваш вопрос немного сбивает с толку, поскольку Вы обращаетесь к основанному на тексте почтовому клиенту и приложению PHP и затем указываете, что "приложение" (т.е. Ваше приложение PHP) для хранения электронной почты (или данные извлек из того) в базе данных.

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

:0
* ^Subject:.*[response-email]
| /path/to/your_script

Можно не учесть Строку темы, если Вы хотите все письма на тот адрес электронной почты, обработанный, или используете различные критерии выбора.

Что касается your_script Я не знаю ни о каких почтовых клиентах командной строки, которые непосредственно помещают Ваш материал в базу данных. Так как, вероятно, необходимо протестировать ответ так или иначе (если не извлечь некоторые дополнительные поля базы данных, по крайней мере, для выбрасывания спама), Вы могли бы хотеть записать your_script в PHP, использующем PECL, чтобы проанализировать его содержание и сохранить его в Вашей базе данных. (Конечно, можно использовать другие языки, с которыми Вы знакомы с этой целью также).

При использовании постфикса для получения электронных писем на машине, этот сценарий работает, удостоверьтесь, что звонили procmail в/etc/postfix/main.cf:

mailbox_command = procmail -a "$EXTENSION"
2
28.01.2020, 02:28
  • 1
    Привет anthon, я не уверен, как Centos работает, но я ищу почтовый клиент, который мог инициировать Сценарий PHP, который мог инициировать Сценарий PHP для парсинга почтового ответа каждый раз, когда почта получена. Это может быть сделано в Linux? Извините за ужасных англичан. Я думаю, что это смущает меня. –  John Doe 27.06.2013, 13:52
  • 2
    Вы сделали бы не, нуждаются в почтовом клиенте для этого. Или Ваша система CentOS получает почту непосредственно, или Вы берете ее через fetchmail и передайте его пользователю с .procmailrc (Я делаю точно это на своей рабочей станции). procmail инициирует Ваш Сценарий PHP. –  Anthon 27.06.2013, 13:55
  • 3
    Если Вы хотите использовать литеральные квадратные скобки в regex, у Вас есть к Escape обратной косой черты они- \[response-email\] –  tripleee 27.06.2013, 15:48

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

1) Bash/ШЕННОН или другой язык сценариев. Что-то как этот:

#!/bin/bash

MyUSER="SET-MYSQL-USER-NAME"
MyPASS="SET-PASSWORD"
MyHOST="localhost"
MyDB="SET-DB"

for mFile in `grep -iR 'WHAT TO FIND???' .`
do
  # here do something with your e-mail z.B:
  mysql -u $MyUSER -h $MyHOST -p$MyPASS MyDB << EOF
      insert into ...
      values ...;
  EOF
done

2) Или синтаксический анализатор на стороне приложения (в PHP), который довольно прост. Взгляните на эту библиотеку: https://github.com/plancake/official-library-php-email-parser

0
28.01.2020, 02:28
  • 1
    Но без почтового клиента, как я смог бы получить почтовые файлы? –  John Doe 27.06.2013, 13:44
  • 2
    Постфиксный сервер ответственен за это. Взгляд связывается, в случае, если Вы havn't настроили его все же. –  Ilya Ananyev 27.06.2013, 13:59

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

Прежде всего, несколько основных терминов:

  • Почтовый пользовательский агент (MUA) - это то, что вы бы назвали «почтовым клиентом». Его цель - позволить пользователю отправлять электронные письма или получать их из почтового ящика и читать их. С технической точки зрения, когда ваш PHP-скрипт отправляет электронное письмо, он действует как MUA.
  • Агент пересылки почты (MTA) занимается исключительно перемещением электронной почты из одного места в другое. В настоящее время это обычно включает в себя обеспечение того, чтобы полученное электронное письмо было тем, что он должен передать перед тем, как сделать это, но на данный момент это выходит за рамки задачи. Думайте об этом как о почтовом отделении.
  • Агент доставки почты (MDA) служит конечной точкой конвейера; когда MTA определяет, что конкретное электронное письмо должно быть доставлено локально, он обращается к MDA для обработки вещей.

Когда вы отправляете электронное письмо, происходит следующее:

  1. MUA генерирует электронное письмо либо с помощью сценария, либо на основе пользовательского ввода, чтобы убедиться, что оно правильно инкапсулировано в соответствии с международными стандартами (эквивалент записи адреса в правильное место и добавление нужного количества штампов) и передает его настроенному MTA.Практически все варианты UNIX, кроме , на самом деле крошечных встроенных систем будут иметь работающий локальный MTA, в частности, чтобы все, что необходимо для отправки электронной почты, могло делать это без необходимости говорить по SMTP.
  2. MTA принимает сообщение и, убедившись, что он должен обрабатывать сообщение, смотрит на адрес назначения и решает, что с ним делать. Если он не предназначен для локальной обработки, он передаст сообщение другому MTA, который, насколько ему известно, является подходящим местом для отправки этого конкретного сообщения.
  3. В зависимости от фактических настроек шаг 2 может повторяться несколько раз - например, локальный компьютер -> интеллектуальный хост ISP отправителя для исходящей почты -> Антивирусный / антиспамовый фильтр ISP-получателя -> основной сервер входящей почты ISP. .
  4. В конечном итоге, если все настроено правильно, цикл на шаге 3 завершится на MTA, который либо способен локально доставить электронную почту, либо авторитетно сообщит отправителю, что его почта не будет принята.
  5. Этот последний MTA передаст электронное письмо указанному MDA, который затем обработает фактическую доставку. Это обычно делается путем помещения его в почтовый ящик получателя, но его можно настроить как угодно.

То, о чем вы просите, выполняется на шаге 5; то, что вы хотите сделать, - это настроить правило доставки для этого конкретного адреса электронной почты, а не доставлять его в почтовый ящик для чтения людьми, направлять электронное письмо в локальную программу (которая не обязательно должна быть этим конкретным сценарием PHP или действительно любой PHP-скрипт - если он исполняемый), который, в свою очередь, анализирует ввод электронной почты и использует его для заполнения записи в базе данных.

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

1
28.01.2020, 02:28

Теги

Похожие вопросы