LINUX.ORG.RU
ФорумTalks

Кто-нибудь пользуется электронной почтой через curl?

 , ,


0

1

Я электронной почтой пользуюсь крайне редко, и 99% моих использований почты это получение одноразовых кодов и ссылок. Поэтому держать почтовый клиент на своём компьютере для меня смысла ровно 0.

При использовании почтовых сервисов, у них всегда есть веб-интерфейс, поэтому, в принципе, этого хватает.

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

Если бы почту слали текстом, мне бы, честно говоря, хватило telnet (ну или openssl s_client). Я как-то пробовал IMAP команды таким макаром вбивать, никаких проблем, всё понятно и user-friendly. Но HTML-письма читать невозможно, там адский суп из тегов. Но ИИшника подсказала мне интересный вариант - оказывается curl умеет в IMAP, т.е. можно посмотреть список писем и скачать письмо в .eml формате.

Остаётся только преобразовать .eml в .html (там есть нюансы с вложенными файлами). Готовых инструментов я не нашёл, но в целом ладно, разобраться с этим можно.

Кто-нибудь таким пользуется? Какой у вас workflow?

★★★★★

заселфхостить

Запускай какой-нибудь из консольных mail-клиентов по ssh и кури выхлоп.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)

Добровольно отрезать себе пальцы и искать способы поковырять в носу.

futurama ★★★★★
()

Напиши скрипт на питоне - он всё умеет. Будет и забирать, и показывать как хочешь.

skyman ★★★★★
()

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

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)

Проверку почты элементарно заскриптовать на любом скриптовом языке и там же вставить парсилку html (перл, пистон, etc). Проблем вообще нет.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Ответ на: комментарий от seiken

Ну я пытаюсь понять, что нужно сделать. Очевидно, что работу с почтовым сервером программировать смысла нет. Это уже есть в curl. Пока всё упирается в преобразование eml в html. Причём там надо переписывать HTML и реализовывать всякие прикольные штуки, вроде отключения загрузки картинок и прочего из внешних источников; отображение заттаченных картинок; декодирование вложенных файлов. В целом ничего сверхъестественного, но на пару лет работы будет.

vbr ★★★★★
() автор топика
Ответ на: комментарий от pfg

Зачем мне это? Для отображения html у меня есть браузер. А готового html у меня нет. У меня есть eml.

vbr ★★★★★
() автор топика
Ответ на: комментарий от vbr

Email::MIME или MIME::Parser не подойдет? Не думаю что набросать остнастку на перле на основе имеющихся парсеров займет два года.

kilolife ★★★★★
()
Ответ на: комментарий от kilolife

Если я буду писать, то на С без библиотек. Мне кажется, что парсинг HTML это нетривиальная задача. Впрочем могу ошибаться, никогда не пробовал…

vbr ★★★★★
() автор топика
Ответ на: комментарий от vbr

Ну как бы все придумали до нас в этом плане. А вот на C без библиотек - действительно нетривиальная задача.
Опять же кто мешает подглядеть как сделали другие да и переписать на с.
У mojolicious есть очень удобные инструменты для разбора HTML/XML https://docs.mojolicious.org/Mojo/DOM

kilolife ★★★★★
()

А чем консольные почтовые клиенты не угодили?

bbc69
()
Ответ на: комментарий от vbr

В целом ничего сверхъестественного, но на пару лет работы будет.

ЛЛМ. Изучаешь сначала я как именно мусор добавляется в хтмл (какие теги, может, что-то нетривиальное) и просто говоришь ЛЛМке: вырезай в данном скрипте весь мусор из хтмл, этот и тот.

seiken ★★★★★
()
Ответ на: комментарий от seiken

На самом деле делается очень быстро. Я такое делал 15 лет назад, когда отфильтровывал одну почту, парсил уведомления, агрегировал и слал на другую. На перле сделал за час-два.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)

А чем, собственно, fetchmail не устраивает? Он ведь примерно для этого и сделан:

collect mail using any variant of POP or IMAP and forwards to a the local SMTP (via TCP socket) or LMTP (via TCP or Unix socket) listener or into an MDA program

CanisDirusLeidy
()
Ответ на: комментарий от CanisDirusLeidy

У меня нет локального SMTP сервера или MDA программы. Не совсем понимаю, при чём тут fetchmail вообще.

vbr ★★★★★
() автор топика
Ответ на: комментарий от vtVitus

На перле сделал за час-два.

а чё так долго?

seiken ★★★★★
()
Ответ на: комментарий от vbr

У меня нет локального SMTP сервера или MDA программы.

А если найду? Ой не факт. Во первых, он там вполне может стоять «по умолчанию», чтобы сообщения от всяких cron в /var/mail складывать. Во вторых, если с того хоста отправлять почту не требуется, то достаточно даже не полноценного MTA, уровня postfix/exim, а какого-нибудь procmail, скачанное fetchmail по директориям раскладывать: https://wiki.archlinux.org/title/Courier-Imap_with_SSL_and_fetchmail

CanisDirusLeidy
()

Непонятно чего ты хочешь добиться. «Селфхост почты» это запускание на своём компе SMTP-сервера, принимающего письма. Причём тут IMAP непонятно, IMAP-клиент (если он есть) и так и так всегда будет на твоём компе.

Но если SMTP-сервер твой собственный то реализовывать IMAP и подобное ненужно, файлы почты и так либо складываются на твоём компе, либо на сервере куда ты можешь зайти по ssh и забрать их копированием файлов.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от vbr

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.