PHP email parser

Alex97

Active 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
 
Не се разбира какво искаш да направиш.
Сложи бодито и хедъра вместо в стринг в array( 'body' => '..', 'to' => '...' )
 
Трябва ми скрипт, който 'получава' мейлове, променя ги и ги праща.

Опитвам с това 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' Полето.
 
Пусни текста на примерен мейл и код, който в момента се опитва да вземе '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
 
Последно редактирано:
Ми не си ги импортнал тия.
Преди 'src' може да има и други папки - зависи къде си го сложил това.

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

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

EDIT: Чакай че се сетих - те нали се аутолоудваха класовете... Вероятно не си го инсталнал като хората. Тоя композер как го пусна на шернатия хостинг?
 
Последно редактирано:
  • Haha
Реакции: Sky
Как да ползвам този 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
Без текста на мейла няма да стане.
 
Ми не си ги импортнал тия.
Преди 'src' може да има и други папки - зависи къде си го сложил това.

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

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

EDIT: Чакай че се сетих - те нали се аутолоудваха класовете... Вероятно не си го инсталнал като хората. Тоя композер как го пусна на шернатия хостинг?
с композер инстал сигурно :D
 
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
 
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
Защо няма да стане на споделен хостинг?
 
Нямаш достъп до много ресурси. Можеш да се разбереш да ти дадат евентуално малко повече достъп, но ще са адски мъки. Говоря от личен опит. Последното дето пробвах е малко скраперче на питон. Двуседмична комуникация и накрая системата ми килваше процеса, защото работи няколко часа. Чиста загуба на полезно време.
 
А защо няма да стане с ПХП просто, защото този език е създаден с друго предназначение и лонг процесите там не работят добре.
 
Много мощен тролизъм. Алекс, като сложиш няколко термина един след друг, това не дава смисъл на изречението. Иначе ако ти е нужен сами ТО то трябва да слухтиш на постфикс/довекот лога. Цялата драма няма да стане на споделен хостинг да те успокоя. Също така Петоня е езика за това.
Съжалявам, че не съм се изразил разбираемо.

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

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

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

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

Намерих https://php-download.com/search?q=php+mail+parser от където мога да си изтегля готов за ползване пакет - това дали е добър вариант?
 
Не трябва парсер а да четеш новите мейли, къде ти хрумна тоя парсер?
 
Сядаш с лист и химикал. Написваш всички точки от точка 1 началото кой праща до точка Х доволен съм от резултата. След това задачата се разделя на подзадачи. Когато имаш подзадачи можеш да потърсиш решение. На първо четене е нужен мейл клиент. Този мейл клиент праща на друг сервиз, който решава дали има нужната му информация. Ако има то минава парсване и извличане на небходимата информация. Как рекох по-рано хич не е травиално решението, камо ли да го сглобиш на шернат хостинг.
 
Сядаш с лист и химикал. Написваш всички точки от точка 1 началото кой праща до точка Х доволен съм от резултата. След това задачата се разделя на подзадачи. Когато имаш подзадачи можеш да потърсиш решение. На първо четене е нужен мейл клиент. Този мейл клиент праща на друг сервиз, който решава дали има нужната му информация. Ако има то минава парсване и извличане на небходимата информация. Как рекох по-рано хич не е травиално решението, камо ли да го сглобиш на шернат хостинг.
ако не са хиляди имейли няма никакъв проблем че е на споделен хостинг
 
Ох, не може ли направо от логовете с едно regex да се вземе каквото трябва...
 

Горе