Автор:
Forb
Дата: 27-08-2001 20:48:14©
Дарова, перец!
Итак, ты целое лето
просидел в IRC и не научился ничему
путному... Но ты помнишь и надеешься на
xakep.ru - там тебя всегда научат :) Вспомни
ситуевину: сидишь ты в IRC и ждешь мыла
от кого-нибудь.. Но не знаешь, пришло
оно или нет? Знакомая ситуация? Дык вот,
чтобы не дергаться и не запускать
какой-нибудь там The Bat или упаси боже MS
Outlook ;) ты реально можешь коннектиться
к mail-серваку твоим любимым mIRC`ом, благо
создатели это предусмотрели, за что им
хвала, почет и бочка пива %)
В основу скрипта берется работа с
сокетами. Главные функции - /sockread и /sockwrite
- будут получать и отправлять инфу с
сервера и на сервер соответственно :)
Больно я тебя загрузил, без бутылки не
обойтись - ответишь ты, поэтому
перехожу прямо к делу.
Для того чтобы задать сведения для
скрипта (логин, пароль, сервер и порт)
тебе нужно кинуть этот кусок в PopUp. Для
этого нажимай Alt+P в мирке, выбери в
верхнем меню View->Status и вписать туда:
MAIL
.CHECK :/S_MAIL
.SERVER :/set %server $$?="Server"
.PORT :/set %port $$?="Port"
.USER:/set %user $$?="User"
.PASS:/set %pass $$?*="Pass"
И затем переключиться в Status, щелкнуть
правой кнопой крысы, пройтись по всем
пунктам в закладке MAIL, кроме CHECK (он у
нас еще не готов) и установить все
переменные, а именно: сервер, порт,
почтовый логин и пароль :)
После этого идем в Aliases (Alt+A) и
вписываем туда (в любое место)
/S_MAIL {
set %i 0
set %var 0
/window -a @MAIL
/sockopen mail %server %port
}
/E_MAIL {
/echo @MAIL
/echo @MAIL Thank for using mailchecker! Please, close this window!
4
/sockclose mail | halt
}
S_MAIL - старт проверки мыла. Обнуляет
важные переменные, открывает новое
окошко MAIL, в которое тебе будет идти
лабуда о твоих новых сообщениях или о
том, что таковых не имеется %), и,
пожалуй, самое главное - открывает
сокет mail на сервер и порт, который ты
указал раньше.
E_MAIL - концовка mailcheck скрипта: вывод
рекламной лабуды =) и закрытие сокета.
И пожалуй самое важное - скрипт обмена
данных между сервером и мирком :) Это
осуществит обработчик on sockread. Для
этого переключимся в Remote (Alt+R) и впишем
туда следующий скрипт:
on 1:sockread:mail:{
if ($sockerr > 0) return
:parse
sockread -n %var
if ($sockbr == 0) return
if (%var == $null) %var = -
if (%i == 0) {
if ($left(%var,4) == -ERR) { echo @MAIL ! Error ! : Server not READY!
| e_mail }
sockwrite -n mail user %user
inc %i
/echo @MAIL Connect ok, sending username %user | goto parse
}
if (%i == 1) {
if ($left(%var,4) == -ERR) { echo @MAIL ! Error ! : Unknown or locked
username! | e_mail }
sockwrite -n mail pass %pass
inc %i
/echo @MAIL Sending password .. | goto parse
}
if (%i == 2) {
if ($left(%var,4) == -ERR) { echo @MAIL ! Error ! : Password Incorrect
or Locked mailbox! | e_mail }
sockwrite -n mail list
inc %i
/echo @MAIL Logged in... Get messages... | goto parse
}
if (%i == 3) {
/echo @MAIL ----------------------
/echo @MAIL Status for %user $+ :
/echo @MAIL ----------------------
e_mail
}
}
В данном скрипте все просто, и нет
ничего лишнего. Скрипт посылает логин,
пароль и запрос на количество
сообщений. И фильтрует их на приеме:
проверка на готовность почтового
сервера, правильности логина и пароля
и в любом случае корректно завершает
работу с сервером.
Настало время проверить работу
скрипта %) Выбирай в статусе Mail->Check и
возрадуйся появлению нового окошка, в
котором тебе придет инфа о новых
мессагах.. или не придет %) В любом
случае, после завершения работы
скрипта закрой окошко :)
И напоследок: чтобы не тянуться в
статус в PopUp менюшку для проверки мыла,
выполни команду: /alias F2 /s_mail - это
позволит тебе проверять почту, всего
лишь нажав кнопку F2
www.xaker.ru