В виду того, что спам всё ещё не вышел из моды, а всякая малварь не перестаёт захватывать сайты с целью использования сервера в качестве “говномёта”, в некоторых датацентрах и в сети интернет провайдеров домашнего интернета встречается ограничение исходящих соединений на 25 порт. Конечно, можно использовать какой-нибудь внешний smtp по шифрованному 465, но в моём случае в этом было мало проку. Мне нужны были только отчёты и уведомления со всех виртуалок на сервере и гарантия их доставки. Немного подумав, я решил, что интереснее всего было бы получать из в мой любимый на сегодняшний день, мессенджер Telegram.
Погуглив по сабжу, я практически сразу наткнулся про проект smtp2tg.
smpt2tg написан на языке Go, так что для начала нужно установить его. Первым делом, я попытался сделать это через пакетный менеджер и таким образом убил лишние полчаса. Поняв, что так ничего не будет работать, я грохнул всё ранее установленное и пошёл наипростейшим путём.
wget https://golang.org/dl/go1.15.6.linux-amd64.tar.gz tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin echo «export PATH=$PATH:/usr/local/go/bin» >> ~/.bashrc
Теперь, убедимся, что мы засунули язык в нужное место. 🙂
Отправлять e-mail уведомления в телеграм (email бот telegram)
Добавляем к этому делу пакеты-зависимости.
go get github.com/veqryn/go-email/email go get github.com/spf13/viper go get gopkg.in/telegram-bot-api.v4 go get github.com/ircop/smtp2tg
Необходимо создать конфиг для программы
Можно расположить его в /etc/smtp2tg.toml
[bot] token = «ключ телеграм бота» [receivers] «*» = «id чата/канала/группы для wildcard» «[email protected]» = «id чата/канала/группы для конкретного адреса» [smtp] listen = «0.0.0.0:25» name = «ex.uz» [logging] file = «/var/log/smtp2tg.log» debug = false
Теперь можно запустить прогу
/root/go/bin/smtp2tg -c /etc/smtp2tg.toml os» «strconv» «strings» «flag» «bytes» «log» «net» «gopkg.in/telegram-bot-api.v4» «github.com/spf13/viper» «github.com/veqryn/go-email/email» «github.com/ircop/smtp2tg/smtpd» ) var receivers map[string]string var bot *tgbotapi.BotAPI var debug bool func main() < configFilePath := flag.String(«c», «./smtp2tg.toml», «Config file location») //pidFilePath := flag.String(«p», «/var/run/smtp2tg.pid», «Pid file location») flag.Parse() // Load log.Fatal(err.Error()) >// Logging logfile := viper.GetString(«logging.file») if( logfile == «» ) < log.Println(«No logging.file defined in config, outputting to stdout») >else < lf, err := os.OpenFile(logfile, os.O_APPEND | os.O_CREATE | os.O_RDWR, 0666) if( err != nil ) < log.Fatal(err.Error()) >log.SetOutput(lf) > // Debug? debug = viper.GetBool(«logging.debug») receivers = viper.GetStringMapString(«receivers») if( receivers[«*»] == «» ) < log.Fatal(«No wildcard receiver (*) found in config.») >var token string = viper.GetString(«bot.token») if( token == «» ) < log.Fatal(«No bot.token defined in config») >var listen string = viper.GetString(«smtp.listen») var name string = viper.GetString(«smtp.name») if( listen == «» ) < log.Fatal(«No smtp.listen defined in config.») >if( name == «» ) < log.Fatal(«No smtp.name defined in config.») >// Initialize TG bot bot, err = tgbotapi.NewBotAPI( token ) if( err != nil ) < log.Fatal(err.Error()) >log.Printf(«Bot authorized as %s», bot.Self.UserName ) log.Printf(«Initializing smtp server on %s. «, listen) // Initialize SMTP server err_ := smtpd.ListenAndServe(listen, mailHandler, «mail2tg», «», debug) if( err_ != nil ) < log.Fatal(err_.Error()) >> func mailHandler(origin net.Addr, from string, to []string, data []byte) < from = strings.Trim(from, » «) to[0] = strings.Trim(to[0], » «) to[0] = strings.Trim(to[0], «<«) to[0] = strings.Trim(to[0], «>») msg, err := email.ParseMessage(bytes.NewReader(data)) if( err != nil ) < log.Printf(«[MAIL ERROR]: %s», err.Error()) return >subject := msg.Header.Get(«Subject») myBytes := msg.Body log.Printf(«Received mail from ‘%s’ for ‘%s’ with subject ‘%s'», from, to[0], subject) // Find receivers and send to TG var tgid string if( receivers[to[0]] != «» ) < tgid = receivers[to[0]] >else < tgid = receivers[«*»] >textMsgs := msg.MessagesContentTypePrefix(«text») images := msg.MessagesContentTypePrefix(«image») if len(textMsgs) == 0 len(images) == 0 < if len(myBytes) == 0 < log.Printf(«mail doesn’t contain text or image») return >> log.Printf(«Relaying message to: %v», tgid) i, err := strconv.ParseInt(tgid, 10, 64) if( err != nil ) < log.Printf(«[ERROR]: wrong telegram id: not int64″) return >if len(textMsgs) > 0 < bodyStr := » from: «+from + » «+ subject + » rnrn» + string(textMsgs[0].Body) tgMsg := tgbotapi.NewMessage(i, bodyStr) tgMsg.ParseMode = tgbotapi.ModeMarkdown _, err = bot.Send(tgMsg) if err != nil < log.Printf(«[ERROR]: telegram message send: ‘%s'», err.Error()) return >> else if len(myBytes) > 0 < bodyStr := » from: «+from + » «+ subject + » rnrn» +string(myBytes) tgMsg := tgbotapi.NewMessage(i, bodyStr) tgMsg.ParseMode = tgbotapi.ModeMarkdown _, err = bot.Send(tgMsg) if err != nil < log.Printf(«[ERROR]: telegram message send: ‘%s'», err.Error()) return >> // TODO Better to use ‘sendMediaGroup’ to send all attachments as a // single message, but go telegram api has not implemented it yet // https://github.com/go-telegram-bot-api/telegram-bot-api/issues/143 for _, part := range msg.MessagesContentTypePrefix(«image») < _, params, err := part.Header.ContentDisposition() if err != nil < log.Printf(«[ERROR]: content disposition parse: ‘%s'», err.Error()) return >text := params[«filename»] tgFile := tgbotapi.FileBytes tgMsg := tgbotapi.NewPhotoUpload(i, tgFile) tgMsg.Caption = text // It’s not a separate message, so disable notification tgMsg.DisableNotification = true _, err = bot.Send(tgMsg) if err != nil < log.Printf(«[ERROR]: telegram photo send: ‘%s'», err.Error()) return >> >
Понятия не имею, почему изначально разработчик решил, что всё это не нужно, но в оригинальном коде предусмотрена доставка только тела письма.
Собирается этот код следующим образом:
mkdir ~/smtp2tg/ vi ~/smtp2tg/main.go
Вставляем вышеупомянутый код в main.go и запускаем “go build”
Запускаем, проверяем, получаем примерно такой результат:
Осталось только пихнуть в автозагрузку. (например в rc.local ?)
Наверное я допишу статью, когда найду нормальный способ демонизировать этот процесс под centos 7. А пока, отдаю на ваш суд, как говорится “as is”.
Источник: ex.uz
Как привязать почту к телеграмму
Телеграмм – один из самых популярных мессенджеров на сегодняшний день. Он предлагает широкие возможности для общения, обмена файлами и документами. Однако, мало кто знает, что с помощью телеграмма можно также привязать свою электронную почту и удобно управлять всеми своими сообщениями в одном месте.
Привязка почты к телеграмму принесет множество преимуществ. Во-первых, вы сможете получать уведомления о новых письмах прямо в вашем мессенджере. Во-вторых, вы сможете отправлять и получать письма, используя удобный интерфейс телеграмма. В-третьих, вы сможете искать письма и взаимодействовать с ними намного проще и быстрее.
В этой статье мы расскажем вам, как привязать почту к телеграмму и настроить все необходимые параметры для комфортного взаимодействия с почтовым ящиком.
Как привязать электронную почту к аккаунту в Telegram?
Telegram предоставляет возможность привязать электронную почту к своему аккаунту, что поможет восстановить доступ к аккаунту в случае утери пароля или телефона. Привязка почты также позволит получать важные уведомления и подтверждения на вашу электронную почту.
Чтобы привязать электронную почту к аккаунту в Telegram, выполните следующие шаги:
1. | Откройте приложение Telegram на своем устройстве. |
2. | Перейдите в главное меню, нажав на значок трех горизонтальных линий в верхнем левом углу экрана. |
3. | Выберите раздел «Настройки», который обычно обозначен значком шестеренки. |
4. | Прокрутите вниз и найдите раздел «Аккаунт». |
5. | В разделе «Аккаунт» выберите пункт «Email». |
6. | Нажмите на кнопку «Добавить почту» и введите свой адрес электронной почты. |
7. | Telegram отправит вам письмо с кодом подтверждения на указанный адрес. Введите этот код в приложении Telegram, чтобы подтвердить свою электронную почту. |
После успешной привязки электронной почты к аккаунту в Telegram, вы сможете управлять своим аккаунтом и получать уведомления через почту.
Обратите внимание, что если у вас уже была привязана другая электронная почта к вашему аккаунту в Telegram, вы должны будете отключить ее, прежде чем привязывать новую почту.
Настройка аккаунта Telegram
Прежде чем привязать почту к аккаунту Telegram, необходимо настроить сам аккаунт и войти в него:
- Скачайте и установите официальное приложение Telegram на свой смартфон или компьютер.
- Запустите приложение и следуйте указаниям по процессу регистрации, вводя номер телефона, на который будет привязан аккаунт.
- После ввода номера телефона на ваш номер придет код активации. Введите этот код в приложение.
- После входа в аккаунт Telegram вам будет предложено ввести свое имя пользователя (никнейм). Введите имя пользователя, которое будет видно другим участникам Telegram.
- Теперь ваш аккаунт настроен! Вы можете отправлять сообщения, добавлять контакты и настраивать функции Telegram по своему усмотрению.
После настройки аккаунта, вы готовы приступить к процессу привязки своей почты к Telegram.
Обратите внимание, что для привязки почты вам понадобится доступ к интернету.
Подробнее о привязке почты к Telegram можно узнать в следующем разделе.
Добавление почтового ящика
Добавление почтового ящика к телеграмму позволяет получать и отправлять электронные письма внутри мессенджера. Это удобно, так как вы можете использовать одно приложение для обмена сообщениями и работы с электронной почтой. Вот как добавить почтовый ящик к телеграмму:
После успешного подтверждения почтового ящика, вы сможете просматривать и отправлять электронные письма в разделе «Почта» в приложении Telegram. Не забудьте проверять почту регулярно, чтобы не пропустить важные сообщения.
Добавление почтового ящика к телеграмму – удобная функция, которая позволяет вам оставаться на связи и управлять электронной почтой из одного приложения. Пользуйтесь этой возможностью, чтобы быть всегда в курсе происходящего и не пропускать важные письма.
Как создать новый аккаунт в Telegram?
Шаг 1:
Загрузите приложение Telegram на свой смартфон или перейдите на официальный веб-сайт Telegram и нажмите на кнопку «Загрузить».
Шаг 2:
После установки приложения откройте его и нажмите на кнопку «Создать новый аккаунт».
Шаг 3:
Введите свой номер телефона, который будет использоваться для регистрации и подтверждения аккаунта.
Шаг 4:
После ввода номера телефона нажмите на кнопку «Далее». Telegram отправит вам смс с кодом подтверждения.
Шаг 5:
Введите полученный код подтверждения и нажмите на кнопку «Подтвердить».
Шаг 6:
Введите свое имя и выберите фотографию профиля, если это требуется.
Шаг 7:
Готово! Теперь вы можете начать использовать Telegram и наслаждаться его возможностями.
Обратите внимание, что для создания аккаунта в Telegram требуется иметь действующий номер телефона. Следуйте инструкциям приложения и используйте подтвержденный номер, чтобы успешно завершить регистрацию.
Скачивание и установка приложения
Прежде чем начать использовать Телеграмм, необходимо скачать и установить приложение на свое устройство. Для этого следуйте указанным ниже шагам:
- Откройте официальный сайт Телеграмм в своем браузере. Для этого используйте адрес telegram.org.
- На главной странице сайта найдите кнопку «Скачать» и нажмите на нее.
- Выберите нужную платформу операционной системы, под которой вы планируете использовать Телеграмм. Например, если у вас Android-устройство, выберите пункт «Android».
- После выбора платформы вас перенаправят на страницу скачивания приложения из официального маркета вашей операционной системы (например, Google Play для Android или App Store для iOS).
- Нажмите на кнопку «Установить» и дождитесь завершения загрузки приложения.
- После установки приложения на вашем устройстве найдите его значок на главном экране или в меню приложений и запустите его.
- Теперь вы можете начать настройку и использование Телеграмм, следуя инструкциям на экране.
Поздравляю, вы успешно скачали и установили приложение Телеграмм! Теперь вы готовы привязать свою почту к Телеграмму и начать пользоваться его полным функционалом.
Регистрация нового аккаунта
Чтобы привязать почту к Телеграмму, вам необходимо зарегистрировать новый аккаунт. Следуйте этим шагам, чтобы создать свой аккаунт:
- Загрузите и установите приложение Telegram на свое устройство.
- Откройте приложение и нажмите кнопку «Начать».
- Введите номер своего телефона и нажмите кнопку «Далее».
- Вам будет отправлен SMS-код для подтверждения номера. Введите этот код в соответствующее поле.
- Придумайте и введите свое имя пользователя. Оно должно быть уникальным.
- После ввода имени пользователя, ваш аккаунт будет создан.
- Теперь вы можете привязать свою почту к аккаунту Telegram.
После регистрации нового аккаунта, вам будет доступна возможность добавления и использования почты в Телеграмме. Это позволит получать уведомления о новых сообщениях и других событиях на вашу электронную почту.
Источник: das1knitu.ru