Входящие письма в Telegram

Завершил небольшой проект по забору почты с рамблера, фильтрации её и пересылке в телеграм с помощью бота. С небольшими изменениями может использоваться и для майл с яндексом. Подразумевается, что вы уже зарегистрировали и настроили бота для телеграм.

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

Отлично, теперь нам требуется подключиться. Делается это так:

Здесь в первых трех строчках мы задаем параметры подключения (логин, пароль и папку), в четвертой строка подключения, в пятой непосредственно подключение через imap, а в шестой уже получаем массив писем.

Остановимся немного подробнее на строке подключения. Адрес imap берем из скрина выше (у яндекса будут уже другой), порт у всех стандартный, но самое интересное тут – это «novalidate-cert» — без этого у вас будет выбивать ошибку на некоторых хостингах. Imap уже обычно установлен на шаред хостингах, если у вас сервер – то придется ставить самостоятельно.

Функция imap_search() как можно догадаться по названию ищет по некоторым параметрам письма. В данном случае мы используем ‘UNSEEN’ – непрочитанные. Папка — «INBOX», если вам в другой надо искать, то смотрите как она у вас называется; регистр тут важен.

Если массив писем не пустой, то проходим по нему и извлекаем заголовок, а из него отправителя и тему письма:

А дальше немного сложнее. Если письмо содержит обычный текст, то

$text_mail_text = base64_decode(imap_fetchbody($connect_imap, $single_mail, 1)); if (!$text_mail_text)

Зависит от кодировки – либо просто достаем, либо расшифровываем base64. Кодировка в даннном случае зависит от того, с какой почты пришло письмо. С html-письмом вот так поступим:

Еще по теме:  Как поменять номер Телеграмма но чаты оставить

$body = getBody( imap_uid($connect_imap, $num_mail), $connect_imap);
function getBody($uid, $imap) < $body = get_part($imap, $uid, «TEXT/HTML»); if ($body == «») < $body = get_part($imap, $uid, «TEXT/PLAIN»); >return $body; > function get_part($imap, $uid, $mimetype, $structure = false, $partNumber = false) < if (!$structure) < $structure = imap_fetchstructure($imap, $uid, FT_UID); >if ($structure) < if ($mimetype == get_mime_type($structure)) < if (!$partNumber) < $partNumber = 1; >$text = imap_fetchbody($imap, $uid, $partNumber, FT_UID); switch ($structure->encoding) < case 3: return imap_base64($text); case 4: return imap_qprint($text); default: return $text; >> if ($structure->type == 1) < foreach ($structure->parts as $index => $subStruct) < $prefix = «»; if ($partNumber) < $prefix = $partNumber . «.»; >$data = get_part($imap, $uid, $mimetype, $subStruct, $prefix . ($index + 1)); if ($data) < return $data; >> > > return false; > function get_mime_type($structure) < $primaryMimetype = [«TEXT», «MULTIPART», «MESSAGE», «APPLICATION», «AUDIO», «IMAGE», «VIDEO», «OTHER»]; if ($structure->subtype) < return $primaryMimetype[(int)$structure->type] . «/» . $structure->subtype; > return «TEXT/PLAIN»; >

Но и это еще не все. После получения тела письма для отправки в телеграм его необходимо превратить в обычный текст – иначе бот не сможет отправить. Это сделать можно, например, вот так. Сначала подключаем simple html dom

include_once «simple_html_dom.php»;
$html = str_get_html($body); foreach($html->find(‘div’) as $element) < $text = $element->plaintext; $text_mail .= $text.’. ‘; >

И убираем все лишние знаки:

$text_mail = str_replace(PHP_EOL, », $text_mail); $text_mail = str_replace(«rn», «», $text_mail); $text_mail = str_replace(array(«r»,»n»,»t»), », $text_mail); $text_mail = preg_replace(‘/[^ a-zа-яёd]/ui’, »,$text_mail );
$txt = «В ящик $email пришло письмо от $mail_from с темой ‘$subject’ и текстом ‘$text_mail'»; sendMessage($tg_chat_id, $txt);

Функцию sendMessage() я уже разбирал здесь. Дальше этот наш файлик php кидаем на хостинг и дергаем по крону, скажем, раз в две минуты.

Как видите, большой сложности в заборе писем нет, основное – это борьба с кодировками и спецсимволами.

Еще по теме:  Как отключить скачивание в Телеграмме

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

заметки, php, telegram, бот, mail

Источник: upread.ru

Входящие письма в telegram

Будь в курсе последних новостей из мира гаджетов и технологий

iGuides для смартфонов Apple

Как пользоваться почтой Gmail в Telegram

Денис

Денис Черкашин — 20 июля 2017, 15:33

Telegram

Компания Google создала официального англоязычного Telegram-бота под названием Gmail Bot. С помощью него можно получать новые письма и сразу отвечать на них, а также отправлять почту в архив или корзину, не выходя из мессенджера.

Для того, чтобы пользоваться почтой Gmail в Telegram нужно:

  • /setting — настройки бота
  • /stop — перестать получать почту в Telegram
  • /start — возобновить получение почты в Telegram
  • /new — написать новое письмо

Гаджеты Google и многое другое вы можете купить у наших друзей из Big Geek. Скидка по промокоду iGuides

Источник: www.iguides.ru

Email внутри Telegram

Ну поскольку Telegram это не просто мессенджер, а целая платформа, то там можно найти всякое. Вот, например, Email внутри.

Ссылка на проект https://wwpager.com/

  • Приём и отправка email;
  • Временный адрес электронной почты;
  • Веб-доступ к почте (включается и отключается через бот);
  • Записная книжка;
  • Персональный email-ящик на домене;
  • Можно снести весь ящик одним кликом (слабо вериться, что реально вся информация уйдет в никуда)

Конечно, забавная вещь. Очень радует, что таких проектов всё больше и больше. Но, как вариант с электронной почтой на постоянной основе — мне очень сложно представить.

Еще по теме:  2 акк в ТГ без номера

Отвратительным минусом стало, что в каждом отправленном и принятом (. ) присутствует реклама. Реклама ещё сомнительного содержания. Конечно, её можно отключить за 3 руб/день ~90 руб/мес. Но это не такой необходимый сервис за который стоит платить. Да, пускай копеечку, но это глупо.

Применению данного бота найти можно. Например, настроить пересылку каких-то важных сообщений себе сразу в телеграмм. Но это уже из пальца высосано. Я оставил бота для временных ящиков, которые иногда бывают нужны.

Тем, кому интересен email внутри telegram есть же нормальное решение от Gmail gmail бот.

Источник: bite-byte.ru

Рейтинг
( Пока оценок нет )
Загрузка ...