Откройте окно свойств учетной записи и перейдите на вкладку Серверы. Включите режим «Проверка подлинности пользователя», а затем нажмите на кнопку «Настройка» и установите параметры аутентификации.
Netscape Messenger
Здесь все аналогично предыдущим программам — установить имя пользователя для сервера SMTP можно в разделе Mail servers (см. рис. 13.4), включить аутентификацию там же. Хочу заметить, что Netscape Messenger (версия 4.76) поддерживает только метод авторизации PLAIN.
Рис. 13.4. Настройка Netscape Messenger
13.4. Другие программы для работы с электронной почтой
Кроме агентов MTA и демонов POP-сервиса существуют также программы для получения почты, POP-клиенты и программы для сортировки почты.
Конечно, любая почтовая программа, например, kmail или Outlook, обладают встроенным POP-клиентом, но, кроме сбора почты, почтовые программы, как правило, обладают массой других не менее полезных функций — создание, отправка сообщений и тому подобные.
В качестве POP-клиента рассмотрим стандартный почтовый клиент Linux — fetchmail, а также программу сортировки почты — procmail.
Лучше всего объяснять работу любой программы на практическом примере. Сначала сформулируем задачи:
1. На один ящик [email protected] поступает почта для всех отделов какой-либо организации. Вам нужно выполнить сортировку приходящей почты по названию отдела, например, если в теле письма или в одном из его заголовков упоминается название отдела, отправить это сообщение одному из пользователей отдела.
2. Настроить автоответчик электронной почты. Этот автоответчик будет работать подобно обыкновенному автоответчику: когда пользователь получает сообщение, автоответчик автоматически отправит ответ, содержащий примерно такое сообщение: «Ваше сообщение получил. Прочитаю в 19:00».
Теперь займемся решением первой задачи. Сначала немного конкретизируем ее. Пусть у вашей организации существует 3 отдела. Адрес первого отдела — [email protected], второго — [email protected], а третьего — [email protected] У вас также есть пользователь mail, на имя которого будет приходить вся почта. Его адрес — [email protected] Также вы хотите, чтобы рассылка проекта LinuxRSP отправлялась вам по адресу [email protected]
Для начала в домашнем каталоге пользователя mail создайте файл .procmailrc примерно такого содержания, как это показано в листинге 13.2 :
Листинг 13.2. Файл .procmailrc
:0
* ^Subject:.*dep1
! dep1
:0
* ^Subject: .*dep2
! dep2
:0
* ^Subject: . *dep3
! dep3
:0
* ^Subject:.*LinuxRSP
! adm
Таким образом, вы определили правила сортировки почты. Если в теме (заголовок Subject) будет присутствовать название отдела, то сообщение будет отправлено нужному пользователю.
Примечание. Если вы создавали файл .procmailrc, зарегистрировавшись в системе как пользователь root, измените права доступа к этому файлу:
chown mail.mail .procmailrc
chmod 600 .procmailrc
Можно выполнить сортировку по полю From или любому другому, например, последнее правило могло бы выглядеть так:
:0
* ^From:.* Subscribe.Ru
! adm
Но в этом случае, если кто-нибудь из пользователей вашей системы также подпишется на другую рассылку на сервере Subscribe.Ru, то вся почта попадет к пользователю adm и вам придется читать рассылку вместе.
Примечание. Подробнее о правилах сортировки вы прочитаете в справочной системе Linux, введя команду man procmail.
В этом же каталоге ($HOME/mail) создайте файл .forward. Если вы работаете как пользователь root, установите права доступа к этому файлу так же как и для файла .procmailrc. В этом файле задаются правила перенаправления почты. Добавьте в него следующую строку:
|IFS=' ' && exec /usr/bin/procmail USER=<mail>
Обычно программа procmail находится в каталоге /usr/bin. Если вы при самостоятельной сборке программы указали другой каталог, измените команду перенаправления в файле .forward.
Теперь создайте файл .fetchmailrc. Этот файл нужно создать в каталоге того пользователя, от имени которого будет запускаться fetchmail. В этот файл добавьте следующие строки:
set postmaster "mail"
poll provider.ru proto POP3 no dns
user "mail" pass "my_password" to mail here
options fetchall
Таким образом вы установите постмастера (пользователь mail. provider.ru) — имя почтового сервера, откуда вы будете забирать почту по протоколу POP3. При этом вы будете использовать имя пользователя mail и пароль my_password. Опция fetchall указывает программе получить всю почту и потом удалить полученные сообщения на сервера provider.ru.
Запускать программу fetchmail можно как демон, а можно с помощью планировщика crontab. В первом случае просто выполните команду:
fetchmail –d 12000
При этом fetchmail будет проверять наличие новой почты через каждые 20 минут. Во втором случае выполните команду crontab –e и введите новое задание:
0,20,40 * .* * * /usr/bin/fetchmail
Теперь перейдем к решению второй задачи. Напомню, что наша цель — создание автоответчика. Существуют два типа автоответчиков. Первые посылают автоответ только на определенные сообщения, а вторые — на все. Например, вам нужно отправить клиенту прайс-лист вашей организации по его требованию. Это первый тип автоответчика. Если же вы уезжаете летом на недельку отдохнуть куда-нибудь и хотите, чтобы программа сообщила людям, что вы в отпуске — это второй тип.
Займемся настройкой первого типа. Для этого в ваш файл .procmailrc добавьте строки:
0:
* ^Subject.*Price
| (formail –r ; cat $HOME/pricelist.zip)
| sendmail –t
Как видите все намного проще, чем ожидалось. А второй тип автоответчика создается еще проще:
0:
| (formail –r; cat $HOME/infо.txt)
| sendmail –t
Заметьте — вы не определяете никаких условий, поэтому ответное письмо будет отправлено всем, кто напишет вам сообщение. В файл info.txt нужно записать ваш автоответ.
Сделаем небольшой вывод. Программа fetchmail используется для загрузки сообщений, a procmail — для ее сортировки. Рекомендую вам изучить параметры программ fetchmail и procmail — вы найдете их в документации по этим программам. Используйте procmail с большой осторожностью, потому что если вы неправильно укажете условия сортировки, почта будет просто утеряна без возможности восстановления.
13.5. Создание списка рассылки
Средствами Linux можно создать небольшую рассылку сообщений электронной почты. Для больших систем рассылки я не рекомендовал бы использовать вам этот метод. Обычно системы рассылки создаются средствами, специально предназначенными для этого, например, РНР в связке с MySQL идеально подходят для этого. Язык программирования РНР предназначен для создания Web-приложений и оснащен всеми необходимыми для этого функциями, а сервер баз данных MySQL обеспечит поддержку базы данных адресов подписчиков и параметры рассылки. Таким образом, если вы хотите создать собственный MailList.Ru, воспользуйтесь готовыми решениями или напишите собственную на РНР или Perl.
Однако иногда бывает полезно создать небольшую рассылку внутри одной организации. Приведенное далее решение не отличается оригинальностью и не претендует на звание лучшей системы рассылки. С помощью этого примера вы также узнаете, как использовать стандартную почтовую утилиту Linux — mail. Эта программа входит в состав практически каждой Unix-системы.
Итак, допустим у вас есть три отдела: отдел маркетинга, производственный отдел и администрация. К первому отделу относятся пользователи вашей системы marina и oleg, ко второму — igor, dmitry, olya, а к третьему — president, director, secretar. Периодически вам нужно отправлять сообщения в один из отделов. Число пользователей небольшое и, возможно, отправить сообщение можно было бы с помощью групп пользователей почтовой программы, которую вы используете. Однако сейчас я покажу, как элегантно это можно сделать средствами Linux. Тем более, что для этого не нужно устанавливать никаких почтовых программ.
Создайте файл .mailrc в вашем домашнем каталоге и добавьте в него строки:
alias market marina oleg
alias proizv igor dmitry olya
alias adm director secretar
В дальнейшем, чтобы отправить сообщение в производственный отдел просто введите команду:
mail proizv
Программа mail попросит вас ввести тему, а затем текст сообщения. Для окончания ввода нажмите Ctrl+D и mail отправит сообщения пользователям.
При создании псевдонимов убедитесь, что в вашей системе нет пользователей с таким именем.
Как видите, средствами одной программы mail вам удалось сделать немного. Если пользователей много, использовать механизм псевдонимов не очень удобно. Гораздо удобнее, чтобы программа mail брала список подписчиков из какого-нибудь файла. К сожалению, разработчики этой программы не предусмотрели такой возможности, однако с помощью небольшого сценария мы можем организовать эту возможность. Посмотрим, что из этого получится, если воспользоваться средствами интерпретатора команд bash.