Читання пошти за допомогою Rmail – ЧАСТИНА 2

275  Rmail-файли і вхідні поштові скриньки

Операційна система поміщає що приходить вам пошту в файл, який ми називаємо вашим вхідним поштовою скринькою Коли ви запускаєте Rmail, він виконує написану на Сі програму movemail, щоб скопіювати нові повідомлення з вхідного поштової скриньки в первинний Rmail-файл, який також містить інші повідомлення, що збереглися від попередніх сеансів Rmail Саме в цьому файлі знаходиться та кореспонденція, яку ви читаєте за допомогою Rmail Ця процедура називається отриманням нової пошти У будь-який момент вона може бути повторена в Rmail за допомогою команди g

Мінлива rmail-primary-inbox-list містить список імен файлів, що є вхідними поштовими скриньками вашого первинного Rmail-файла Якщо ви не встановили цю змінну явно, вона инициализируется значенням змінної середовища MAIL, або, в крайньому випадку, встановлюється в значення nil, що означає використання вхідного поштової скриньки за умовчанням це можуть бути файли / var / mail / імякористувача ,

‘/ Usr / mail / імякористувача або / usr / spool / mail / імякористувача в залежності від вашої операційної системи

Щоб дізнатися значення за замовчуванням для вашої системи, використовуйте Ch v rmail-primary-inbox hRETi Ви можете вказати вхідний файл (або файли) для будь-якого Rmail-файлу за допомогою команди set-rmail-inbox-list дивіться Розділ 276 [Rmail-файли], с 278

Є дві причини для поділу Rmail-файлів і вхідних поштових скриньок

1 Формат вхідних поштових файлів змінюється від однієї операційної системи до іншої і залежить від інших поштових програм Тільки одна частина Rmail повинна знати про ці альтернативи і повинна лише розуміти, як перетворювати їх все до власного формату Rmail

2 Забезпечення доступу в файл вхідного поштової скриньки без виникнення небезпеки втрати пошти – дуже громіздка річ, оскільки вимагає взаємних блокувань з доставкою пошти Крім того, різні операційні системи використовують різну техніку блокувань Стратегія переміщення пошти з вхідного поштової скриньки раз і назавжди в окремий Rmail-файл усуває необхідність блокування всього решти в Rmail, так як тільки Rmail працює з Rmail-файлом

Rmail був написаний з використанням Babyl в якості внутрішнього формату З тих пір ми зрозуміли, що звичайний для систем Unix і GNU формат вхідних поштових скриньок підходить для цієї мети, і ми плануємо змінити Rmail, щоб він використовував цей формат Однак, Rmail-файл все так само буде окремим від вхідного файлу, навіть на системах, де їх формати однакові

276  Безліч поштових файлів

За замовчуванням Rmail діє у вашому первинному Rmail-файлі, званому ~ / RMAIL, і отримує вашу прихожу пошту з системного вхідного поштового файлу Але ви можете також мати інші Rmail-файли і редагувати їх за допомогою Rmail Ці файли можуть отримувати пошту через їх власні файли вхідних поштових скриньок, або ви можете переміщати в них повідомлення за допомогою явних команд Rmail (див Розділ 277 [Висновок з Rmail], с 279)

i файл hRETi

Вважати файл в Emacs і запустити в ньому Rmail (rmail-input)

M-x set-rmail-inbox-list hRETфайли hRETi

Задати імена вхідних поштових файлів, звідки буде отримувати пошту теку-

щий Rmail-файл

g Отримати нову пошту з вхідних поштових скриньок поточного Rmail-файлу

(rmail-get-new-mail)

C-u g файл hRETi

Отримати нову пошту з вхідного поштової скриньки файл

Щоб запустити Rmail для файлу, відмінного від вашого первинного поштової файлу, можна використовувати в Rmail команду i (rmail-input) Вона звертається до цього файлу в режимі Rmail Ви також можете використовувати команду Mx rmail-input, навіть не перебуваючи в Rmail

Файл, що зчитується за допомогою команди i, як правило, повинен бути правильним Rmail-файлом Якщо це не так, Rmail намагається перетворити його в потік повідомлень в кількох відомих форматах Якщо це вдається, він перетворює весь цей файл в Rmail-файл Якщо ви задали імя неіснуючого файлу, i инициализирует новий буфер для створення нового Rmail-файла

Ви також можете вибрати Rmail-файл з меню Спочатку виберіть пункт меню Classify, з меню Classify виберіть пункт Input Rmail File потім виберіть потрібний вам файл Змінні rmail-secondary-file-directory і rmail-secondary-file-regexp вказують, які файли пропонує це меню: перша змінна говорить, в якому каталозі їх шукати другий говорить, які файли в цьому каталозі пропонувати (всі, чиї імена відповідають регулярному виразу) Ці змінні також ставляться до вибору файлу для виводу (див Розділ 277 [Висновок з Rmail], с 279)

Кожен Rmail-файл може містити список імен файлів вхідних поштових скриньок ви можете задати цей список за допомогою Mx set-rmail-inbox-list hRETfiles hRETi Аргумент може містити будь-яке число імен файлів, розділених комами Він може бути також порожнім, і це означає, що цей файл не повинен мати вхідних поштових скриньок Як тільки вказаний список вхідних поштових скриньок, Rmail-файл запамятовує його і зберігає доти, поки він явно не буде змінений

Як особливе виключення, якщо ваш первинний Rmail-файл не вказує вхідних почто-

вих файлів, він використовує стандартний системний

Команда g (rmail-get-new-mail) вносить пошту в поточний Rmail-файл з його вхідних файлів Якщо у цього Rmail-файлу немає вхідних файлів, g нічого не робить Команда Mx rmail також вносить нову пошту в ваш первинний Rmail-файл

Щоб перенести пошту з файлу, який не є звичайним вхідним поштовою скринькою, задайте ключу g числовий аргумент, як в Cu g Тоді він вважає імя файлу і перенесе пошту з нього Коли g використовується з аргументом, файл вхідного поштової скриньки ні в якому разі не видаляється і не змінюється Тому це основний спосіб перенесення одного файлу повідомлень в іншій

277  Копіювання повідомлень у файли

Ці команди копіюють повідомлення з Rmail-файлу в іншій файл

o файл hRETi

Додати копію поточного повідомлення в кінець файлу, за замовчуванням у форматі

Rmail-файлів (rmail-output-to-rmail-file)

C-o файл hRETi

Додати копію поточного повідомлення в кінець файлу, за замовчуванням у форматі системних поштових скриньок (rmail-output)

w файлhRETi

Вивести тільки тіло повідомлення в файл, за замовчуванням імя файлу береться з поля Subject.

Команди o і Co копіюють поточне повідомлення у вказаний файл Це може бути Rmail-файл або файл у форматі системних поштових скриньок команди виведення зясовують формат цього файлу і записують копируемое повідомлення в цьому форматі

При копіюванні повідомлення у файл у форматі Unix, ці команди включають всі поля заголовків, які видимі в даний момент Якщо хочете, використовуйте спочатку команду t, щоб вказати, які заголовки показувати (І копіювати)

Команди o і Co розрізняються з двох сторін: кожна пропонує своє імя файлу за замовчуванням і кожна задає свій вибір формату, коли файл ще не існує Команда o використовує при створенні нового файлу формат Rmail, тоді як Co використовує для нового файлу системний формат За замовчуванням o використовує імя файлу, заданий останньої o, а Co – останньої Co

Якщо до вихідного Rmail-файлу в даний момент звертається небудь буфер, команди виведення копіюють повідомлення в цей буфер Чи потрібно дійсно зберігати буфер в його файл вирішуєте ви

Іноді ви можете отримати повідомлення, чиє тіло несе вміст файлу Ви можете зберегти його тіло у файл (виключаючи заголовки повідомлення) за допомогою команди w (rmail-output-body-to-file) Часто ці повідомлення містять імя цільового файлу в поле

‘Subject, тому команда w використовує це поле як імя вихідного файлу за замовчуванням Однак, імя файлу зчитується з мінібуфера, тому при бажанні ви можете вказати інше імя

Ви також можете вивести повідомлення в Rmail-файл, вибраний з меню Спочатку виберіть пункт меню Classify, з меню Classify виберіть пункт Output Rmail File потім виберіть потрібний вам пункт меню Це виведе поточне повідомлення у вказаний файл, як команда o Змінні rmail-secondary-file-directory і rmail-secondary-fileregexp вказують, які файли пропонує це меню: перша змінна говорить в якому каталозі їх шукати другий говорить, які файли в цьому каталозі пропонувати (всі, чиї імена відповідають регулярному виразу)

Копіювання повідомлення додає його вихідної копії атрибут filed, так що коли таке повідомлення стає поточним, в рядку режиму зявляється слово filed. Якщо ви хочете зберігати тільки одну копію кожного поштового повідомлення, встановіть змінну rmail-delete-after-output рівний t тоді команди o і Co після копіювання видаляють оригінал (Згодом ви можете скасувати видалення оригінального повідомлення, якщо захочете)

При копіюванні у файли в системному форматі поштових скриньок використовуються поля заголовка, які показані в цей час в Rmail Таким чином, якщо ви використовуєте команду t для перегляду всього заголовка і потім скопіюєте повідомлення, скопіюється весь заголовок Див Розділ 2713 [Відображення повідомлень], с 286

Мінлива rmail-output-file-alist дозволяє вам вказати інтелектуальні значення за замовчуванням для вихідного файлу, засновані на вмісті поточного повідомлення Її значенням має бути список, чиї елементи мають таку форму:

(regexp   імя)

Якщо в поточному повідомленні є збіг з regexp, То за замовчуванням імям вихідного файлу буде імя Якщо збіги знайдені для декількох елементів, то імя файлу за замовчуванням визначається першим співпало елементом Підвираз імя може бути

константної рядком, що дає імя файлу, або, в більш загальному випадку, будь-яким лісповскім виразом, що повертає імя файлу у вигляді рядка rmail-output-file-alist відноситься як до o, так і до Co

278  Мітки

У кожного повідомлення можуть бути різні мітки, приписувані йому в якості засобу класифікації Мітка має імя різні імена означають різні мітки Будь дана мітка або присутній, або відсутня в конкретному повідомленні Ряд імен міток мають стандартні значення і присвоюються повідомленнями в Rmail автоматично в потрібний момент такі спеціальні мітки називаються атрибутами

Джерело: Річард Столмен, Керівництво по GNU Emacs

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*