Сохранение электронной почты как файл в дураке?

Ограничение сетевых ресурсов на основе некоторого criterias является предметом QoS. Существует несколько различных способов управлять пользовательским трафиком в системах Linux.

Существует хорошее практическое руководство о методах расширенной маршрутизации и управлении трафиком на Linux Bert Hubert.

28
22.07.2017, 22:44
5 ответов

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

23
27.01.2020, 19:39
  • 1
    Просто примечание: если Ваше электронное письмо будет содержать вложения, то сохранение просто первая запись из списка вложений сохранит сообщение - но без вложений, включенных внутри. –  sdaau 19.05.2015, 13:02
  • 2
    Другое примечание: это не сохраняет заголовков, включая отправителя, получателя и предмет. –  Sparhawk 11.10.2015, 06:35

s команда сохраняет к почтовому ящику, который для Вас находится в maildir формате. К сожалению, нет никаких, сохраняют в файл команду, возможно, потому что в историческом mbox формате, почтовый ящик, который содержит единственную почту, является просто файлом, содержащим ту почту.

mutt сообщение канала команды (ярлык по умолчанию |) может использоваться для этого. Это открывает командную строку, и Вы пишете cat > DESIRED-FILE-PATH.

Опция "декодирования канал" управляет тем, что происходит с заголовками и частями пантомимы, когда Вы сохраняете сообщение этот путь.

Можно было, вероятно, записать макрос для этой функциональности.

31
27.01.2020, 19:39
  • 1
    Прохладный, это может сохранить заголовки также, но на данный момент, я использовал бы путь Michael, Спасибо! –  daisy 11.01.2013, 03:56
  • 2
    Это работает хорошо и обеспечивает эффективный способ сохранения 50 + электронные письма (использующий метки сопоставления с образцом) в файл. Я должен был вырыть немного для нахождения этого путем добавления set pipe_decode=yes к моему muttrc был тем, о чем писал Kai von Fintel. непосредственный –  Screenack 01.05.2015, 16:36
  • 3
    также, это сохраняет вложения в экспортируемом почтовом файле, также. –  sdaau 19.05.2015, 13:55

Если Вы touch файл и затем пытается сохранить или скопировать сообщение в него, дурак будет использовать его в качестве mbox.

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

10
27.01.2020, 19:39
  • 1
    я должен был заставить сообщение с полными заголовками вставлять его в сценарий тестирования фильтра, и это работало отлично. –  Soren Bjornstad 15.08.2016, 17:56

Ответ Кая фон Финтеля работает отлично, но я просто подумал, что поделюсь макросом, чтобы упростить этот процесс.

Во-первых, в muttrc :

macro index,pager S "| ~/.local/bin/file_email /tmp<enter>"

Это направляет полное электронное письмо (включая заголовки и вложения) в следующий сценарий. Создайте исполняемый файл по адресу ~ / .local / bin / file_email .

#!/usr/bin/env bash
# Save piped email to "$1/YYMMDD SUBJECT.eml"

# Don't overwrite existing file
set -o noclobber

message=$(cat)

mail_date=$(<<<"$message" grep -oPm 1 '^Date: ?\K.*')
formatted_date=$(date -d"$mail_date" +%y%m%d)
# Get the first line of the subject, and change / to ∕ so it's not a subdirectory
subject=$(<<<"$message" grep -oPm 1 '^Subject: ?\K.*' | sed 's,/,∕,g')

if [[ $formatted_date == '' ]]; then
  echo Error: no date parsed
  exit 1
elif [[ $subject == '' ]]; then
  echo Warning: no subject found
fi

echo "${message}" > "$1/$formatted_date $subject.eml" && echo Email saved to "$1/$formatted_date $subject.eml"

Этот сценарий сохраняет файл с первым аргументом (т.е. в приведенном выше примере muttrc электронное письмо будет сохранено в / tmp ). Формат имени файла: ГГММДД СУБЪЕКТ.eml . Он также преобразует / в , чтобы предотвратить создание подкаталогов.

3
27.01.2020, 19:39

Я перепробовал все предложенные ответы, но не смог сохранить необработанную, составную (text/plain + text/html )e -почту в файл, включая ее заголовки и все остальное. Мне нужно было это, чтобы кормить мой спам-фильтр -электронной -почтой, чтобы научить его, является ли конкретная почта спамом или нет...

Решение, которое я придумал, это нажать e(, то есть «редактировать сообщение» )в открытом сообщении, которое открывает необработанное сообщение в выбранном вами редакторе. Raw здесь означает, что вы получаете сообщение точно так же, как оно пришло в mutt,так что у вас есть все заголовки и все байты, составляющие сообщение.

После нажатия eя просто записываю буфер (Я устанавливаю редактор vim)в файл с :w <path_to_file>/<file_name>и все.

P.S. :Я бы добавил это как комментарий, но для этого нужен определенный уровень репутации. Кроме того, я знаю, что вопрос очень старый, но поскольку neomutt все еще используется многими людьми, я подумал, что это может кому-то помочь.

Обновление:Я пропустил вариант pipe-decode, о котором говорил Кай. Если бы эта опция была установлена ​​правильно, она бы работала и через |. Тем не менее, мое решение тоже работает;-)

1
27.01.2020, 19:39

Теги

Похожие вопросы