Ограничение сетевых ресурсов на основе некоторого criterias является предметом QoS. Существует несколько различных способов управлять пользовательским трафиком в системах Linux.
Существует хорошее практическое руководство о методах расширенной маршрутизации и управлении трафиком на Linux Bert Hubert.
Фактическое сообщение обнаруживается как вложение также, таким образом, можно сохранить его из списка вложения. Или от индекса или от самого сообщения, хит v для открытия вложений и s для сохранения
s
команда сохраняет к почтовому ящику, который для Вас находится в maildir формате. К сожалению, нет никаких, сохраняют в файл команду, возможно, потому что в историческом mbox формате, почтовый ящик, который содержит единственную почту, является просто файлом, содержащим ту почту.
mutt
сообщение канала команды (ярлык по умолчанию |
) может использоваться для этого. Это открывает командную строку, и Вы пишете cat > DESIRED-FILE-PATH
.
Опция "декодирования канал" управляет тем, что происходит с заголовками и частями пантомимы, когда Вы сохраняете сообщение этот путь.
Можно было, вероятно, записать макрос для этой функциональности.
set pipe_decode=yes
к моему muttrc был тем, о чем писал Kai von Fintel. непосредственный
– Screenack
01.05.2015, 16:36
Если Вы touch
файл и затем пытается сохранить или скопировать сообщение в него, дурак будет использовать его в качестве mbox.
Также Вы могли бы хотеть использовать копию вместо сохранения. Дурак предполагает, что почта должна только существовать в одной копии, и сохранение сообщения к другому почтовому ящику удалит ее из первой, в то время как копирование сделает надлежащую копию.
Ответ Кая фон Финтеля работает отлично, но я просто подумал, что поделюсь макросом, чтобы упростить этот процесс.
Во-первых, в 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
. Он также преобразует /
в ∕
, чтобы предотвратить создание подкаталогов.
Я перепробовал все предложенные ответы, но не смог сохранить необработанную, составную (text/plain + text/html )e -почту в файл, включая ее заголовки и все остальное. Мне нужно было это, чтобы кормить мой спам-фильтр -электронной -почтой, чтобы научить его, является ли конкретная почта спамом или нет...
Решение, которое я придумал, это нажать e
(, то есть «редактировать сообщение» )в открытом сообщении, которое открывает необработанное сообщение в выбранном вами редакторе. Raw здесь означает, что вы получаете сообщение точно так же, как оно пришло в mutt,так что у вас есть все заголовки и все байты, составляющие сообщение.
После нажатия e
я просто записываю буфер (Я устанавливаю редактор vim)в файл с :w <path_to_file>/<file_name>
и все.
P.S. :Я бы добавил это как комментарий, но для этого нужен определенный уровень репутации. Кроме того, я знаю, что вопрос очень старый, но поскольку neomutt все еще используется многими людьми, я подумал, что это может кому-то помочь.
Обновление:Я пропустил вариант pipe-decode
, о котором говорил Кай. Если бы эта опция была установлена правильно, она бы работала и через |
. Тем не менее, мое решение тоже работает;-)