Почта в Телеграмме как сделать

Часто с новыми инструментами и возможностями появляется желание поэкспериментировать и реализовать что-то не совсем обычное, чего раньше ещё никогда не делал. Идея создать свой сервис временной почты в виде телеграм бота показалась мне достаточно интересной.

Небольшая предыстория

Не так давно я переехал с обычного хостинга на VPS и так получилось, что спустя месяц или чуть больше мне снова пришлось переезжать уже на другой VPS. В обоих случаях у меня был самый дешёвый тарифный план и Ubuntu 16.04. Так как последний раз на тот момент с терминалом я сталкивался в университете, что было равносильно полному отсутствию опыта, для настройки своего VPS я использовал прекрасные пошаговые инструкции от DigitalOcean (часть из них переведена на русский язык для тех, кто, как и я, недостаточно знает английский). И да, мой первый VPS был на DO, а переехать снова пришлось в основном потому, что часть его IP адресов попала под раздачу РКН. Повторив пару раз процедуру настройки LAMP, я немного привык к терминалу VPS и в рамках его дальнейшего освоения решил перейти к необычным экспериментам – к созданию своего сервиса временной почты например.

Опыт в бэкенде, в частности в создании телеграм ботов на PHP MySQL у меня уже был, но получать электронную почту «самому» — это казалось далёким и непонятным. Открыв несколько вкладок с различными статьями по теме, я понял, что ничего не понял. Везде предлагалось использовать тонну различных инструментов, что на мой взгляд больше подходило для полноценного почтового сервиса, чем для задачи получения входящих email сообщений на VPS.

Получение входящей почты

Для первого шага мне очень помогла статья из песочницы: habr.com/ru/post/260429. Я обратил внимание на её отрицательный рейтинг, однако в ней описано ровно то, что меня интересовало. Я хотел как можно быстрее получить результат, который можно «пощупать», и с мыслями «в будущем я сделаю как надо» пошёл настраивать sendmail.

Затем я настроил домен. DNS записи:

example.com IN MX 5 mail.example.com
mail.example.com IN A XXX.XX.XXX.XXX (ip адрес VPS)

Чтобы обрабатывать входящую почту php-скриптом, в файл /etc/aliases добавил строку vasya: «|php -q /home/vasya/mail.php» .

Проведя несколько тестов и убедившись, что входящая почта передаётся в php скрипт, я мог заняться её обработкой.

Получение сырой входящей почты, направленной в php выше описанным способом, реализуется в коде крайне просто:

$msg = file_get_contents(«php://stdin»);

Совсем другое дело это разбор почтового формата и представление данных в понятном и доступном виде. Гугл предложил мне несколько вариантов, как можно разобрать почтовый формат средствами PHP.

Все найденные мной библиотеки тянули за собой установку дополнительных компонентов, однако одна из них мне показалась менее громоздкой: github.com/zbateson/mail-mime-parser. Единственное, что мне нужно было установить дополнительно, это популярный пакетный менеджер для PHP – Composer. Конечно, на обычном хостинге я с ним и не сталкивался, но его установка и дальнейшее подключение библиотеки для разбора почты не оказалось сколько-нибудь сложным.

Начало php скрипта для обработки входящей почты с использованием библиотеки zbateson/mail-mime-parser выглядит так:

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

$to = $message->getHeader(‘To’); $email = $to->getAddresses()[0]->getEmail();

Для получения контента входящих писем в библиотеке есть соответствующие методы:

$from = $message->getHeader(‘From’)->getEmail(); $subject = $message->getHeaderValue(‘Subject’); $msg_text = $message->getTextContent(); $msg_html = $message->getHtmlContent();

Телеграм бот

Что должен уметь телеграм бот временной почты в первую очередь?

  1. Выдавать новый временный email адрес по запросу
  2. Присылать в чат входящие письма для этого email, пока почтовый адрес действителен
  3. Продлевать действие email-адреса
Еще по теме:  Айфон как прочитать сообщение в Телеграмм которое удалили

Для взаимодействия с Telegram Bot API я использую собственные наработки. Кто-то предпочитает использовать популярные библиотеки. Отправка сообщений с кнопками в телеграм уже давно стала привычным делом, о чём написано не мало статей.

Генерация временных email адресов по сути является выдачей следующего адреса по порядку. Я создал таблицу для email адресов в базе данных, где id типа int с автоинкрементом однозначно определяет получателя. Превращение числового id в строковый адрес осуществляется как перевод числа в другую систему счисления, где в качестве «цифр» доступен весь латинский алфавит. 26 букв по сравнению с цифрами дают неплохое сокращение длины идентификатора. Наверное, я мог бы использовать также большие буквы, цифры и некоторые символы без проблем для ещё большего сокращения длины выдаваемых адресов, но я оставил лишь маленькие латинские буквы.

Функции перевода числового id в строковый и обратно:

$alphabet = explode(«,», «a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z»); function num2str($n, $a) < // $a — алфавит $b = count($a); $r = 0; $x = «»; while ($n) < $r = $n%$b; $n = ($n-$r)/$b; $x .= $a[$r]; >return strrev($x); > function str2num($s, $a) < $n = 0; $b = count($a); $s = strrev($s); for ($i = 0; $i < strlen($s); $i++) < $n += array_search($s[$i], $a) * pow($b, $i); >return $n; >

Одно из ключевых преимуществ использования сервиса временной почты — отсутствие спама. Но если адреса идут по порядку, можно составить список ближайших адресов, которые будут выданы и успешно делать рассылку. Для решения этой проблемы я добавил некоторую случайную строку к идентификатору получателя. Для различия id и случайной составляющей в адресе я решил всегда начинать случайную компоненту с цифры.

Случайную строку выдаваемого email адреса записываем в БД вместе с id получателя, id пользователя в телеграме и временем выдачи почтового ящика.

Казалось бы, можно даже не хранить входящую почту — отправили в телеграм и всё. Но как быть с html письмами? Их невозможно отобразить в сообщении в чате. Остаётся записывать входящие html сообщения в БД и показывать их на сайте, а пользователю отправлять ссылку, включающую в себя id сообщения и очередной сгенерированный пароль. Для очистки БД кроном по расписанию запускается php скрипт, удаляющий входящие html сообщения, которые были получены более часа назад.

Позже в телеграм бота я добавил кнопки, продлевающие срок действия почтового ящика на 10 или 60 минут, а также кнопку, позволяющую узнать сколько, всё-таки, осталось ему жить до того, как будет прекращён приём входящих сообщений.

Так как в телеграме мы имеем дело с зарегистрированными пользователями, можно предоставить возможность активировать свои старые почтовые ящики например с целью восстановить забытый пароль на веб-сайте или для любых других операций, требующих подтверждение с помощью email. Выданный почтовый ящик «принимает» входящие только когда это необходимо пользователю, всё остальное время возможный спам игнорируется.

Хотелки на будущее:

  • Создать веб-версию [сделано]
  • Настроить быструю смену почтового домена в пару кликов/команд (как?)

Ссылки

Статья, где описана настройка sendmail

PHP библиотека для разбора электронной почты

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

Почта в телеграмме как сделать

CRM АвтоВебОфис позволяет делать рассылку своим подписчикам и клиентам не только на почту, но и в Telegram. Это существенно расширяет Ваши возможности по охвату и работе со своей базой.

Подключение бота

Для работы с Telegram сначала надо обязательно подключить бота Telegram в АвтоВебОфис.

Если у вас нет бота, то необходимо его создать. Для этого в приложении Telegram ищем бота botfather


Cоздаем нового бота с помощью команды /newbot

Вводим имя нового бота, оно обязательно должно заканчиваться на Bot или _bot

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

Telegram возвращает ссылку на наш новый бот и token.

Подключаем бота к магазину в АвтоВебОфис.

Введите token (имя бота подтянется автоматически) и нажмите кнопку «Сохранить»

Бот подключен в АвтоВебОфис. Теперь можно привязать (контакт привязанный к сотруднику) сотрудника к боту. Т.е. подписаться на бота, чтобы можно было получать на свой Telegram те же сообщения, которые он рассылает другим. Вдобавок к этому, если у контакта сотрудника не был привязан telegram_id, то он привяжется.
Нажимаем на кнопку «Подписаться на бота», она направляет вас в приложение Telegram и выводит приветственное сообщение

К сотруднику привязан Telegram, контакт подписан на бота.

Закрытые группы/Закрытые Телеграмм каналы

В Telegram Вы можете создавать частные и публичные группы/каналы. Вы можете создать частную группу/канал, например, для своих учеников. Однако частная группа/канал не является закрытой. В неё можно попасть по ссылке приглашения
Но эта ссылка единая для всех. И вот я делаю рассылку по своим клиентам и даю ссылку-приглашение в группу/канал. Люди добавляются, а там важная информация. Но нехороший клиент может дать ссылку своему другу и тот тоже добавится в группу/канал.

Для таких случаев в АвтоВебОфисе есть механизм закрытых групп. По сути это белый список контактов, которым разрешено подписываться и находиться в группе/канале. ВАЖНО: мы по техническим причинам не можем подписать контакт на группу/канал, это он делает сам по ссылке приглашения. Мы только добавляем/убираем его из белого списка.

Если у вас нет группы/канала, то необходимо её/его создать. Для этого в приложении нажимаем “Создать группу/канал”

Вводим имя группы/канала. Добавляем нашего бота в группу/канал (это обязательно!)

Добавленному боту надо дать права администратора: Управление группой → Администраторы → Добавить администратора

Готово, группа/ канал созданы. Теперь настроим доступ.

Управление группой → Тип группы/ Здесь выбираем “Частная группа”

При создании канала, данная настройка осуществляется в самом начале, после того как Вы создали канал, дали ему название

Внизу появится ссылка-приглашение, которую необходимо разослать клиентам, чтобы они добавились в группу/канал.

После добавление группы/канала в АвтоВебОфис, можно управлять белым списком(списком контактов, которым разрешено нахождение в группе/канале)

Добавить/Убрать контакт из списка можно руками в списке контактов группы/канала

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

ИЛИ с помощью автоворонок

Как это работает?

Доступ к группе идёт на основе «белых списков» (кому-то разрешено, а кому-то нет).
Чтобы кто-то смог войти в группу и его не выкидывал бот, нужно в этот «белый список» добавить участника. Это можно сделать через автоворонки или вручную

Рассылки в Telegram

Рассылка в Telegram происходит по тем контактам, которые подписаны на бота. Ботов можно выбирать при создании рассылки. Важно: бот не делает рассылку в группу!

Как подписать контакт на бота (привязка Telegram к существующему контакту)

Вариант 1. Чтобы привязать к контакту Telegram, ему необходимо подписаться на бота. После подписки на бота мы сможем слать этому контакту сообщения от имени бота и управлять доступом к закрытым группам.

Так или иначе подписка сводится к переходу контактом по специальной (уникальной по контакту и боту) ссылке. Эту ссылку можно получить в карточке контакта и передать клиенту.
А можно сделать массовую рассылку или отправить email из автоворонок, вставив специальный тег. Тег заменится на ссылку автоматически перед отправкой письма. Контакту останется только перейти по ссылке.

Вариант 2. Также в настройках бота есть общая ссылка подписки на бота.
Эта ссылка работает так: — Если на странице refferer (откуда пришел контакт) есть get переменные _aid и _vcaid (они есть на страницах благодарности за подписку на email группу, страницах с просьбой подтвердить подписку), значит это досбор контактных данных, и мы привязываем Telegram к контакту с id = _aid. Иначе создаем новый контакт.
То есть, если разместить общую ссылку для подписки на бота на страницах благодарности за подписку на email группу, страницах с просьбой подтвердить подписку, при подписке на бота id контакта в Telegram будет добавлен в существующий контакт с email.
Важно: при размещении ссылки, следите, чтобы тег ссылки не содержал атрибута target=”_blank” (этот атрибут на телефоне перекинет пользователя из браузера почтового клиента в браузер по-умолчанию, ввиду чего привязка к существующему контакту не сработает)

Еще по теме:  Как найти Телеграмму ржд

Привязка почты контакта к существующему контакту с Telegram

Если в базе аккаунта уже есть контакт с Телеграмм, к нему можно добавить почту этого контакта.

Это можно сделать:

— Отправив из процессов сообщение в Телеграмм с ссылкой на страницу с формой подписки.
В процессах блок «Сообщение в телеграм»
Ссылка на страницу формой подписки — Отправив рассылку контактам с Телеграмм с ссылкой на страницу с формой подписки.
Рассылку можно создать в разделе «Рассылки → Рассылки Телеграмм → Создать»
Ссылка на страницу формой подписки

Источник: wiki.autoweboffice.com

Можно ли зарегистрироваться в телеграмм через почту

Мобильное приложение Телеграм давно стало популярным способом общения не только для миллионов пользователей по всему миру, но и для бизнеса. Но что делать, если вы не хотите или не можете использовать свой номер телефона для регистрации в аппликации? Одним из решений может быть искомого пользователя. Однако, следует помнить, что такой метод, хоть и считается довольно эффективным, но все же не является на 100% точным. Кроме того, при использовании этого способа следует учитывать личные данные и геопозицию своих контактов, ведь они могут также влиять на точность полученных результатов вычислений.

Как выгрузить файлы из Телеграма

Если необходимо выгрузить файлы из Телеграма, можно воспользоваться функцией экспорта истории чата или канала. Для этого нужно выбрать нужный чат или канал и нажать на три вертикальные точки в верхнем правом углу. Затем следует выбрать пункт «Экспорт истории чата/канала», после чего можно выбрать, какой тип контента необходимо выгрузить: фото, видео, аудио и видеосообщения, стикеры, гифки и файлы. Этот метод удобен для тех, кто хочет сохранить свою переписку или историю постов в канале на внешний носитель, чтобы не потерять важную информацию. При желании можно регулярно использовать данную функцию, чтобы не накапливать слишком много данных в приложении.

Где хранятся файлы с телеграмма на айфоне

На айфоне (iOS 15) трудно найти папку Telegram (Телеграм). Она не отображается в файловом менеджере. Чтобы найти ее, необходимо перейти в сам Telegram и выбрать «настройки». Далее нужно выбрать «Данные и память» и затем «Использование памяти». Там будет отображен размер всех ваших файлов, которые вы отправляли и принимали в чатах.

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

Раньше зарегистрироваться в телеграмм можно было только при наличии номера телефона. Однако теперь пользователи могут получить коды авторизации и через электронную почту. Также теперь есть возможность использовать функцию «Войти с помощью Apple» или «Войти с помощью Google». Владельцам устройств на iOS предоставлена возможность использовать обновленный интерфейс регистрации, в котором добавлены плавные анимации, уже присутствующие в Android-версии приложения. Таким образом, теперь регистрация в телеграмм стала более удобной и доступной для всех пользователей, в том числе для тех, у кого нет номера телефона или он недоступен для использования.

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

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