Небольшая CLI утилита которая преобразует email (RFC 5322) переданный в STDIN в формат YAML (RFC 9512).
Find a file
Alexander Neonxp Kiryukhin 6c7bdb9e14
All checks were successful
/ build (push) Successful in 28s
Добавил поле даты
2026-02-01 18:11:29 +03:00
.forgejo/workflows added workflow 2026-02-01 16:30:44 +03:00
.golangci.yml v1.0.0 2026-02-01 15:30:02 +03:00
email.go Добавил поле даты 2026-02-01 18:11:29 +03:00
go.mod v1.0.0 2026-02-01 15:30:02 +03:00
go.sum v1.0.0 2026-02-01 15:30:02 +03:00
LICENSE v1.0.0 2026-02-01 15:30:02 +03:00
main.go v1.0.0 2026-02-01 15:30:02 +03:00
out.yaml v1.0.0 2026-02-01 15:30:02 +03:00
output.go Добавил поле даты 2026-02-01 18:11:29 +03:00
README.md v1.0.0 2026-02-01 15:30:02 +03:00
test.eml v1.0.0 2026-02-01 15:30:02 +03:00

Email2YAML

Небольшая CLI утилита которая преобразует email (RFC 5322) переданный в STDIN в формат YAML (RFC 9512).

Выходные поля

  • from - email отправителя
  • from_name - имя отправителя. Парсится из адреса. Если не передано, то берётся первая часть адреса (до @), разбивается по спецсимволам и каждое слово пишется с заглавной буквы
  • from_hash - md5 от email. Может применяться для создания аватара с помощью Gravatar
  • subject - Тема письма
  • body - Тело письма без подписи
  • body_signature - Подпись в письме если есть (отделяется от тела по \n-- \n)

Параметры

Usage of email2yaml:
  -array
        Is output YAML is array item.
  -base_indent int
        Base indenting of output YAML.
  -indent int
        Indenting of output YAML. (default 2)
  -verify_sender
        Compare From header and SENDER env.
  • array - если передан, то выходной YAML документ будет элементом массива (т.е. с - вначале и с отступом для остальных полей)
  • base_indent - если передан, то в каждую строку будет добавлено столько пробелов, сколько указано в параметре (по умолчанию, 0)
  • indent - количество пробелов для отступов внутри документа (по умолчанию, 2)
  • verify_sender - если передано, то сравнивает отправителя из поля From и переданной переменной окружения SENDER (например, подставляемой MTA Exim4)

Пример использования

cat test.eml| SENDER=i@neonxp.ru email2yaml -array -verify_sender >> emails.yaml

cat emails.yaml
- from: i@neonxp.ru
  from_name: Alexander NeonXP Kiryukhin
  from_hash: 5fa017c21957fbbc9786758be021915f
  subject: test subject
  body: "Hello, world!\n-- \nSecond line"
  body_signature: |-
    Alexander NeonXP Kiryukhin
    9E49 0BBE 2F1F 82C9 15F8 F440 96BF 11A6 7E3C 75F6

Лицензия

Этот проект лицензирован в соответствии с GNU General Public License версии 3 (GPLv3). Подробности смотрите в файле LICENSE.

                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2026 Alexander NeonXP Kiryukhin <i@neonxp.ru>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.