26.11.2010

503 valid RCPT command must precede DATA

Эта ошибка появляется, если начинается ввод поля DATA до того, как было принято, а не было введено поле RCPT.
В принципе описание ошибки весьма поверхностное и мало о чем говорит. Как правило такое бывает если:

1) Сервер сказал, что умеет PIPELINING. В результате получил batch команд, в которых идут сначала DATA, а затем RCPT. А иногда и несоклько RCPT. После чего опомнился и дал отлуп.

2) RCPT не был принят по каким либо причинам. Например не верна запись PTR для домена, указанного в ehlo или просто не стоит в угловых скобках.

3) Некоторые почтовики (mail.ru например) отказывают в случае, если MX запись домена, от имени которого отправляют указана в виде IP-адреса.
То есть вместо такой записи:
company.com MX 5 123.321.222.111
нужно писать так:
company.com     MX    5    mail.company.com.
mail                    A             123.321.222.111
Только не забудьте две вещи: после mail.company.com. должна стоять точка, иначе DNS присобачит к нему имя зоны и получите mail.company.com.company.com. А второе: такое изменение пройдет только тогда, когда mail.ru обновит свой DNS-кэш - а это несколько часов. То есть результат не сразу настанет.

Для очень подробного выявления проблемы можно использовать великолепную утилиту. Я ее запускаю на сервере, откуда уходит письмо. А она мне подробно показывает весь диалог в формате SMTP:


# swaks --to mailuser@mail.ru 
=== Trying mxs.mail.ru:25...
=== Connected to mxs.mail.ru.
<-  220 Mail.Ru ESMTP
 -> EHLO source-server.com
<-  250-mx170.mail.ru ready to serve
<-  250-SIZE 31457280
<-  250 8BITMIME
 -> MAIL FROM:
<-  250 OK
 -> RCPT TO:
<-  250 OK
 -> DATA
<-  354 Go ahead
 -> Date: Mon, 24 Sep 2012 04:05:16 +0000
 -> To: mailuser@mail.ru
 -> From: root@source-server.com
 -> Subject: test Mon, 24 Sep 2012 04:05:16 +0000
 -> X-Mailer: swaks v20120320.0 jetmore.org/john/code/swaks/
 ->
 -> This is a test mailing
 ->
 -> .
<-  250 OK id=1TFzv3-0005J7-8p
 -> QUIT
<-  221 mx170.mail.ru closing connection
=== Connection closed with remote host.

У команды много опций, например можете задать конкретный MX, опцией --server или вынудить подключиться по TLS: --tls

10.11.2010

Как убить зомби? Да легко, нужно убить его родителя!

И не надо меня насильно лечить, я про Linux :)

# top -b -n 1 | head -2 | tail -1
Tasks: 165 total, 1 running, 161 sleeping, 2 stopped, 1 zombie

# ps auxw | awk '{ print $8 " " $2 }' | grep -w Z
Z 19089

# grep PPid /proc/19089/status
PPid: 19079

# kill -9 19079

# top -b -n 1 | head -2 | tail -1
Tasks: 161 total, 2 running, 157 sleeping, 2 stopped, 0 zombie

07.11.2010

FastCGI: протрите фару, пинните по колесу.

Все, мы по сто раз сталкивались с ошибкой 500 Internal Server Error: A generic error message, given when no more specific message is suitable.
Иногда, особенно, если Apache работает не как mod_php, а как mod_fcgid, при этом в логе:Premature end of script headers
Что делать? Теоретически это скрипт не успел до конца обработаться. Но причин для этого можеть быть море. Один мой товарищ Саша Ребриков, большой маг и волшебник по части чего-нибудь напрограммировать или починить, умудрялся диагностировать ошибку и находить точную причину. Но ему помогал космос, как он сам говорит, а мы на это рассчитывать не можем.

Тут буду собирать список научных тыков, один из которых случайно может попасть в точку и починить:


Немного мыслей на национальную тему

Очень часто на форумах поднимается палестино-израильский вопрос. Не менее часто смотрится он в разрезе всяких стереотипов и клише. Минимум анализа.

И каждый раз писать меня не вставляет. Попробую здесь объяснить свое мнение на глобальные вопросы. А уж потом просто кидать ссылку страждущим правды, справедливости и смерти евреям.
Более того, я постараюсь не оперировать фактами, потому что факты могут быть легко оспорены. Ну максимум буду упоминать общеизвестные факты, которые и без меня все знают. Ну или хотя бы легко проверяются через интернет. Я буду оперировать только логикой на основе фактов, признанных обеими сторонами.

И если Вы не обладаете интеллектом и склонностью к рассуждениям, то хотя бы посмотрите простой, наглядный и доходчивый ролик Дэнниса Прейгэра.  Но если Вам нужно докопаться до правды, то here we go...