Получите простое / текстовое тело письма без оригинального сообщения, используя PHP и IMAP

Я пытаюсь извлечь всю информацию из непрочитанных писем, чтобы добавить их в базу данных. К сожалению $email_body иногда содержит HTML-подписи, которые не очень хорошо выглядят в виде обычного текста. Я также не хочу сохранять цитируемый текст в базе данных, на которую ответил пользователь (я имею в виду исходное сообщение электронной почты; см. Ниже). Я только хочу сохранить ответ пользователей.

Это мой текущий код (return falseпотому что это handle() функция команды Laravel Artisan)

<?php
$mailbox = "{mail.example.com:993/imap/ssl}INBOX";
$mailbox_username = "[email protected]";
$mailbox_password = "secretPassword";

echo "Fetching new emails for $mailbox_username using IMAP from '$mailbox'...";

$mbox_connection = imap_open($mailbox, $mailbox_username, $mailbox_password) or die("Could not connect to IMAP server due of following error: " . imap_last_error());

$unseen_emails = imap_search($mbox_connection, 'UNSEEN');

if($unseen_emails == false) {
$this->comment("No unseen emails found.");
return false;
}

foreach($unseen_emails as $email_id) {
echo "+----------------------------+";
$email_header = imap_headerinfo($mbox_connection, $email_id);
$email_body = trim(quoted_printable_decode(imap_fetchbody($mbox_connection, $email_id, 1)));

echo "subject: " . $email_header->subject;
echo "message_id: " . $email_header->message_id;
echo "from-name: " . imap_utf8($email_header->from[0]->personal);
echo "from-email: " . $email_header->from[0]->mailbox."@".$email_header->from[0]->host;
echo "body: " . $email_body;
}

imap_close($mbox_connection);

Поэтому, как правило, вы отправляете электронные письма, когда отвечаете на это:

Hey,

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.


Best Regards,
<signature>


from: [email protected]
subject: Lorem ipsum dolor sit amet

Hey,

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.


Best Regards,
<signature>

В этом случае я только хочу сохранить ответ:

Hey,

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.


Best Regards,
<signature>

Как я могу это сделать?

Я нашел это: Удалить подпись из MIME-кодированного письма с PHP

Может ли быть какой-либо RFC, который определяет, как выглядят ответы электронной почты, чтобы сократить их в этой позиции?

И есть ли способ удалить подписи HTML, которые были отформатированы как обычный / текст, поскольку они выглядят очень ужасно?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]