Как из телеграмма переслать на почту
Перейти к содержимому

Как из телеграмма переслать на почту

  • автор:

Python Telegram бот, отправить письмо с файлом на почту

Python Telegram бот, отправить письмо с файлом на почту

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

Старт

Прежде всего нужно разрешить внешним приложением использовать почтовый ящик для отправки электронных писем. (Для демонстрации использовал почту Яндекс) Для этого на странице управление аккаунтом переходим во вкладку безопасность и создаем пароль для внешнего приложения.

Python Telegram bot отправка файла на электронную почту

Отправка письма

Установим библиотеку, с помощью который будем асинхронно передавать письма.

pip install aiosmtplib

Создадим файл smtp.py . Укажем адрес электронной почты и пароль, что создали ранее, и попробуем отправить письмо с текстом «Привет» самим себе.

from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from aiosmtplib import SMTP import asyncio EMAIL = 'example@yandex.ru' PWD = 'password' async def send_mail(subject, to, msg): message = MIMEMultipart() message["From"] = EMAIL message["To"] = to message["Subject"] = subject message.attach(MIMEText(f" ", "html", "utf-8")) smtp_client = SMTP(hostname="smtp.yandex.ru", port=465, use_tls=True) async with smtp_client: await smtp_client.login(EMAIL, PWD) await smtp_client.send_message(message) if __name__ == '__main__': asyncio.run(send_mail('Тема письма', 'example@yandex.ru', '

Привет

'))

Python Telegram bot отправка файла на электронную почту

Письмо успешно доставлено.

Телеграм бот

Установим библиотеку для удобного взаимодействия с Telegram Bot API.

pip install pyTelegramBotAPI

Создадим файл main.py , и напишем простого бота, который на сообщение с текстом “Письмо” будет отправлять на почту id пользователя.

Для этого импортируем ранее созданный smtp.py и добавляем функцию send_mail к обработчику сообщений.

from telebot.async_telebot import AsyncTeleBot import asyncio import smtp TOKEN = 'TOKEN' bot = AsyncTeleBot(TOKEN) @bot.message_handler(commands=['start']) async def send_welcome(message): await bot.send_message(message.chat.id, "Привет") @bot.message_handler(func=lambda message: message.text.lower() == 'письмо') async def send_mail_text(message): await bot.send_message(message.chat.id, 'Письмо отправлено') cormail = smtp.send_mail('Новое сообщение','example@yandex.ru', f'

User ID ') asyncio.gather(asyncio.create_task(cormail)) asyncio.run(bot.polling())

Проверяем, отправив сообщение боту.

Python Telegram bot отправка файла на электронную почту

Письмо с ID пользователя доставлено.

Отправка файла

Тут все просто, немного изменим содержимое функции send_mail и добавим новый параметр url . Не забываем импортировать aiohttp , io , и MIMEApplication

. message.attach(MIMEText(f" ", "html", "utf-8")) if url: async with aiohttp.ClientSession() as session: async with session.get(url) as responce: buffer = io.BytesIO(await responce.read()) part = MIMEApplication(buffer.read(), Name=url.split('/')[-1]) part['Content-Disposition'] = f'attachment; filename=' message.attach(part) smtp_client = SMTP(hostname="smtp.yandex.ru", port=465, use_tls=True) . 

Так же в боте добавим новую функцию, и сам обработчик для перенаправления полученного файла на почту.

@bot.message_handler(content_types=['document']) async def send_mail_document(message): await bot.send_message(message.chat.id, 'Файл отправлен') document_id = message.document.file_id file_info = await bot.get_file(document_id) url_file = f'http://api.telegram.org/file/bot/' cormail = smtp.send_mail('Новое сообщение', 'example@yandex.ru', f'

Файл отправлен пользователем ID ', url_file) asyncio.gather(asyncio.create_task(cormail))

Запускаем и наслаждаемся.

Как отправить данные из формы в Телеграм и/или на почту?

Здраствуйте, в вопросе всё сказано но хочу добавить я кучу роликов посмотрел прочитал много статей но ни одна не отправила данные из формы в Телеграм, так что кроме подсказки как сделать скрипт на php и/или js можете ещё попытаться разжевать то куда тыкать вставлять и т.д. буду очень благодарен! Вот стандартная разметка:

  
Что вы предлагаете нам улучшить на сайте?

Отслеживать
задан 2 фев 2023 в 19:32
19 5 5 бронзовых знаков
Если в первую форму добавить кнопку, то она и сама отправится по указанному адресу при нажатии
2 фев 2023 в 20:04

@SwaD Значит можно без всей этой мутни с php и js? Значит можно просто добавить ссылку и оно автоматически будет отправит сообщение в Телеграм? Просто сколько я не гуглил оно мне выдавало что-то по типу «Как отправлять текст с помощью PHP» или «Как сделать бота на php который будет отправлять текст из html формы». Можете подсказать и рассказать как это сделать?

2 фев 2023 в 20:26

Нет, придется повозится, как минимум с серверной частью, т.к. кто то должен же принимать данные, обрабатывать. Не совсем понятно, при чем здесь телеграмм, ну да и ладно. При нажатии на кнопку, содержимое всех input удет по адресу, указанному в action тега form. Другое дело, если перед отправкой вы хотите их провалидировать, например, тут нужен JS.

2 фев 2023 в 20:31

Так что берите в руки учабник по PHP и javaScript и дерзайте. Не будет что то получаться, приходите с кодом и ошибкой, поможем, чем сможем. Просто помните, между помочь и сделать за вас, большая разница )

Как пересылать определённую часть письма из почты в Телеграм?

Хочу сделать бота подобного @etlgr_bot, но необходимо подкорректировать, чтобы приходил не весь текст из сообщения, а конкретная его часть.

Вообще цель такая: сделать переадресацию сообщений из одной почты в Телеграм, но чтобы не приходило сообщение с кучей ссылок, фото, лишней информацией, а только нужный мне текст из сообщения.

  • Вопрос задан более двух лет назад
  • 774 просмотра

Как настроить пересылку электронной почты в телеграм?

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

пересылка почты в телеграм

Кому пересылка почты в телеграм может быть очень кстати:

  1. Менеджерам и владельцам сайтов и интернет-магазинов.
    Ведь чаще всего на сайте сформированные заказы и заявки отправляются именно на электронную почту. Чем быстрее будет реакция на заказ, тем больше вероятность успешной продажи.
  2. Владельцам электронных кошельков.
    Часто уведомление о платежах или поступлениях приходит только на емейл, а уведомление по смс уже требует отдельной платы. В этом случае можно сэкономить и получать на смартфон нужные уведомления через телеграм.
  3. Сисадминам, владельцам камер видеонаблюдения и т.п.
    Информация с серверов и устройств часто приходит только на емейл, а на телеграм получать такие уведомления проще и удобнее.

Выбор телеграм бота для почты

Чтобы пересылать почту в телеграм понадобится специальный бот (программа). Она выглядит как обычный контакт в списке, но позволяет принимать и отправлять почту из телеги.

Я тестировал ботов: Гугл, Яндекс, сторонний сервис Etlgr.com

Краткое резюме — все они плохие

  • гугл требует для России и Ирана VPN при авторизации, да и есть подозрения что вообще гугл может отвалиться. Сам бот на английском, и довольно «деревянный».
  • яндекс на момент написания статьи не умеет принимать (!) почту в телеграм, только отправляет (то есть пишешь в телеграм — приходит в яндекс почту), это какой-то позор нахрен вообще такой бот??
  • etlgr.com работает с любой почтой, использует специально сгенерированный емейл, вроде всё толково, но платный — хочет 1,99$ в месяц, сдурели.

Читайте также: Как разместить отзывы о компании на сайте

Короче, помыкавшись, решил остановиться на Гугл боте для почты, так как других вариантов особо и нет.

Порядок установки

Итак, моя задача: хочу получать уведомления о приходе и расходе денег с кошелька Юмани, а также заявки с блога мгновенно в телеграм.

Сейчас уведомления приходят просто на почту с темами, вроде: «Вы заплатили из кошелька . «, «Ваш кошелек . пополнен» и «Заявка с блога . «

Так как для этого мне нужно принимать не все сообщения, а только избранные, то я сначала зашел на gmail.com и создал там отдельную почту для телеграма, типа новый-емейл@gmail.com

пересылка почты в телеграм

После чего, в основной почте, куда валятся все уведомления сделал редирект (перенаправление) на новую почту новый-емейл@gmail.com

В яндекс почте это делается как на скриншоте.

как переслать почту в телеграм

Прописываем правила переадресации.
Рекомендую убрать флажок «Положить в папку», тогда письма будут и на почту приходить, а не только в телеграм.

как переслать почту в телеграм

Затем установил телеграмовского бота как обычно. То есть кликнул по ссылке https://t.me/GmailBot, открыл её в телеграме и затем ввёл команду /start

пересылка почты в телеграм

Мне было предложено авторизоваться в gmail почте, что и надо сделать.

Обратите внимание, что для России и Ирана они требуют авторизацию через VPN.

Настройки бота

У меня некоторые письма в телеграм приходили не сразу.

Я зашел в настройки gmail бота /settings и там отметил все папки как whitelable, после чего письма в телеграм стали приходить быстрее.

Читайте также: Установка расширений в Opencart 3

отправка писем в телеграм

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

Тестируем

Теперь отправляю тестовое сообщение с темой, например, «Заявка с блога».

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

пересылка писем в телеграм

Пришло в телеграм

как написать письмо в телеграм канал

Выводы и итоги

Нормальный почтовый бот для пересылки писем с почты в телеграм пока только один — @gmailbot от гугла.

Остальные или кривые, или платные, или бесперспективные.

Из яндекса мог бы получиться самый толковый бот, надеюсь его доделают и он также как и гугл сможет принимать почту в телеграме.

  • Оптимизация бизнеса
  • Создание магазина
  • Создание сайта компании

Полезные цитаты: Богатые люди покупают предметы роскоши в последнюю очередь, в то время, как бедные и средний класс стремятся приобретать их в первую очередь.

Блог — Сергея Арсентьева ��
Всего материалов на сайте: 240
Активных комментариев: 3 504
Работает онлайн: 10.8 лет
Читателей за это время: 2 502 181
Я в соцсетях —
Бесплатный видеокурс для начинающих. Что такое фриланс, можно ли на нем зарабатывать и сколько?

Бесплатная мини книга для тех, кто хочет заказать сайт, но растерялся во множестве CMS и вариантов выбора.

Пошаговый видеокурс «Как работать в Опенкарт» с уроками по добавлению товаров и статей.
Комментариев 11
сначала новые

Вы можете использовать бот MegaPort. Он работает с почтовыми серверами IMAP и SMTP (включая Gmail) для получения и отправки почты непосредственно в Telegram.

23.03.2024 в 12:49 |
Комментировать

Штука интересная, я протестировал, но это не совсем то, что нужно. Основная его проблема в том, что он не отправляет сообщение в телеграм — мол, вам пришло такое-то письмо. Он просто позволяет зайти и почитать свой почтовый аккаунт из телеграмма. То есть мне на почту пришло письмо, а в телеграме — никакого уведомления нет.
Надо самому зайти и посмотреть, приходило что-то или нет. Это может иногда кому-то полезно (увидеть все свои 200 писем например), но не для быстрых уведомлений.
Основная фишка получения писем в телеграм — мгновенность. То есть клиент сделал заказ — я мгновенно вижу уведомление о нем в телеграм. Или с карточки списались деньги — я вижу сразу уведомление в телеграме. Не через 10 минут, не через 1 час, а сразу, по возможности максимально мгновенно. Если бы так он было реализовано в Megaport — то было бы хорошо

27.03.2024 в 12:12 |
Комментировать

Спасибо большое за полезную статью. Искал как настроить пересылку в Телеграм. Буквально за 10 мин все сделал. Очень удобно!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *