PHP email parser

Alex97

Member
Трябва ми скрипт, който 'получава' мейлове, променя ги и ги праща.

Опитвам с това https://github.com/zbateson/mail-mime-parser но не ми се получава, защото ползвам споделен хостинг за PHP и нещо не тръгва този парсер. Аз не разбирам от програмиране а явно с copy/paste точно тук не се получава. Някой може ли да помогне?

1. мейла се pipe към php с email forward в cPanel - това е готово.
2. php чете мейла и го слага в една string променлива. Мейла е text и от хеадер-а ми трява само полето to
3. php променя части от мейла и с API го праща през SendGrid. - това е лесно и знам как да стане, готово е.

Кой може да помогне с т.2?

Не е задължително да се ползва библиотеката на zbateson
 

contra

Well-Known Member
Не се разбира какво искаш да направиш.
Сложи бодито и хедъра вместо в стринг в array( 'body' => '..', 'to' => '...' )
 

alexkuzmov

Well-Known Member
Трябва ми скрипт, който 'получава' мейлове, променя ги и ги праща.

Опитвам с това https://github.com/zbateson/mail-mime-parser но не ми се получава, защото ползвам споделен хостинг за PHP и нещо не тръгва този парсер. Аз не разбирам от програмиране а явно с copy/paste точно тук не се получава. Някой може ли да помогне?

1. мейла се pipe към php с email forward в cPanel - това е готово.
2. php чете мейла и го слага в една string променлива. Мейла е text и от хеадер-а ми трява само полето to
3. php променя части от мейла и с API го праща през SendGrid. - това е лесно и знам как да стане, готово е.

Кой може да помогне с т.2?

Не е задължително да се ползва библиотеката на zbateson
Пусни текста на примерен мейл и код, който в момента се опитва да вземе 'to' Полето.
 

Alex97

Member
Пусни текста на примерен мейл и код, който в момента се опитва да вземе 'to' Полето.
Как да ползвам този mail-mime-parser ?

https://github.com/zbateson/mail-mime-parser

Код:
<?php

use ZBateson\MailMimeParser\MailMimeParser;
use ZBateson\MailMimeParser\Message;
use ZBateson\MailMimeParser\Header\HeaderConsts;

$mailParser = new MailMimeParser();

$handle = fopen('php://stdin', 'r');
$message = $mailParser->parse($handle, false);

$email_message->getTextContent();
echo $email_message;

?>

връща грешка

PHP Fatal error: Uncaught Error: Class 'ZBateson\MailMimeParser\MailMimeParser' not found in /home/yellvvxl/parse/promo-update.php:22

ред 22 е $mailParser = new MailMimeParser();

Af3ZZg5.png
 
Последно редактирано:

contra

Well-Known Member
Ми не си ги импортнал тия.
Преди 'src' може да има и други папки - зависи къде си го сложил това.

PHP:
require 'src/MailMimeParser.php';
require 'src/Message.php';
require 'src/Header/HeaderConsts.php';

дисклеймър: от композерско PHP не разбирам много.

EDIT: Чакай че се сетих - те нали се аутолоудваха класовете... Вероятно не си го инсталнал като хората. Тоя композер как го пусна на шернатия хостинг?
 
Последно редактирано:
  • Haha
Реакции: Sky

alexkuzmov

Well-Known Member
Как да ползвам този mail-mime-parser ?

https://github.com/zbateson/mail-mime-parser

Код:
<?php

use ZBateson\MailMimeParser\MailMimeParser;
use ZBateson\MailMimeParser\Message;
use ZBateson\MailMimeParser\Header\HeaderConsts;

$mailParser = new MailMimeParser();

$handle = fopen('php://stdin', 'r');
$message = $mailParser->parse($handle, false);

$email_message->getTextContent();
echo $email_message;

?>

връща грешка

PHP Fatal error: Uncaught Error: Class 'ZBateson\MailMimeParser\MailMimeParser' not found in /home/yellvvxl/parse/promo-update.php:22

ред 22 е $mailParser = new MailMimeParser();

Af3ZZg5.png
Без текста на мейла няма да стане.
 

Sky

Well-Known Member
Ми не си ги импортнал тия.
Преди 'src' може да има и други папки - зависи къде си го сложил това.

PHP:
require 'src/MailMimeParser.php';
require 'src/Message.php';
require 'src/Header/HeaderConsts.php';

дисклеймър: от композерско PHP не разбирам много.

EDIT: Чакай че се сетих - те нали се аутолоудваха класовете... Вероятно не си го инсталнал като хората. Тоя композер как го пусна на шернатия хостинг?
с композер инстал сигурно :D
 

hristonev

Well-Known Member
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
 

Sky

Well-Known Member
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
Защо няма да стане на споделен хостинг?
 

hristonev

Well-Known Member
Нямаш достъп до много ресурси. Можеш да се разбереш да ти дадат евентуално малко повече достъп, но ще са адски мъки. Говоря от личен опит. Последното дето пробвах е малко скраперче на питон. Двуседмична комуникация и накрая системата ми килваше процеса, защото работи няколко часа. Чиста загуба на полезно време.
 

hristonev

Well-Known Member
А защо няма да стане с ПХП просто, защото този език е създаден с друго предназначение и лонг процесите там не работят добре.
 

Alex97

Member
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
Съжалявам, че не съм се изразил разбираемо.

Нека да опитам пак.

Имам една система която герерира лог файлове и ги праща по мейл. Те са plain text без attachments. В тях има много информация и са трудни за четене и анализ, а на мен ми трябват само определени неща да ги взема от този лог файл получен по мейла и да си ги вкарвам в един MySQL.

За целта ми трябва email parser, но изглежда всички, които намирам изискват composer, който аз нямам на моя споделен хостинг.

Намерих няколко статии които обясняват как да се пусне composer на споделен хостинг, но ми изглежда сложно. Все пак ще опитам ако не успея да намеря по-лесен начин.

Намерих https://php-download.com/search?q=php+mail+parser от където мога да си изтегля готов за ползване пакет - това дали е добър вариант?
 

Sky

Well-Known Member
Не трябва парсер а да четеш новите мейли, къде ти хрумна тоя парсер?
 

hristonev

Well-Known Member
Сядаш с лист и химикал. Написваш всички точки от точка 1 началото кой праща до точка Х доволен съм от резултата. След това задачата се разделя на подзадачи. Когато имаш подзадачи можеш да потърсиш решение. На първо четене е нужен мейл клиент. Този мейл клиент праща на друг сервиз, който решава дали има нужната му информация. Ако има то минава парсване и извличане на небходимата информация. Как рекох по-рано хич не е травиално решението, камо ли да го сглобиш на шернат хостинг.
 

Sky

Well-Known Member
Сядаш с лист и химикал. Написваш всички точки от точка 1 началото кой праща до точка Х доволен съм от резултата. След това задачата се разделя на подзадачи. Когато имаш подзадачи можеш да потърсиш решение. На първо четене е нужен мейл клиент. Този мейл клиент праща на друг сервиз, който решава дали има нужната му информация. Ако има то минава парсване и извличане на небходимата информация. Как рекох по-рано хич не е травиално решението, камо ли да го сглобиш на шернат хостинг.
ако не са хиляди имейли няма никакъв проблем че е на споделен хостинг
 

Горе