SendMailApp={SMTP[SmtpSend]} -ln 200 -r 1 -helo {Server[HostName]} -o {Dirs[Temp]}\smtpsend-{RANDOM-ID}.log -f {SMTP[Out]}\ {SMTP[Return]}
{SMTP[DNSServer]} по дефолту.
Прописывая IP в DNSServer результата не дает.
Что не так?
|
SendMailApp={SMTP[SmtpSend]} -ln 200 -r 1 -helo {Server[HostName]} -o {Dirs[Temp]}\smtpsend-{RANDOM-ID}.log -f {SMTP[Out]}\ {SMTP[Return]}
{SMTP[DNSServer]} по дефолту.
Прописывая IP в DNSServer результата не дает. Что не так? |
пробиваю в nslookup MX запись для vkmz.ru тут же письмо уходит
параметр -s пробовал, результат то же
Лог успешной отправки хорошо бы посмотреть.
вот лог неудачи:
Это DNS ваш или провайдерский?
На личном опыте пришёл к выводу, что надо ставить локальный кэширующий DNS, назначив ему десяток надёжных проверенных форвардеров.
Кстати, в последних логах отрезано начало с IP выбранного DNS-сервера. Поскольку вы его всё равно редактируете, то верю на слово, что сервер один и тот же. Подтвердите мою веру.
Версия: SMTPSEND v4.38 for Eserv © 1997-2008 A.Cherezov Etype Co.
Описание проблемы.
Если домен получателя (пример: sandy.ru) не соответствует MAIL EXCHANGER'у (relay1.sandy.ru, relay2.sandy.ru), т.е. "A" и "MX" записи для домена ссылаются на разные адреса, то попытки отправить почту обычно заканчиваются какими-либо из следующих winsock ошибок: 10051, 10060, 11004.
Временное используемое решение.
Для того чтобы "протолкнуть" такую почту, приходится выполнять в nslookup следующие шаги: set type=mx sandy.ru
В результате мы получаем подробный положительный ответ. Почта на этот домен начинает уходить без проблем. DNS информация кешируется провайдерским DNS на указанный ttl в DNS ответе. Однако, временное решение перестает удовлетворять, когда письма на такие домены, достаточно много и часто отправляются. По понятным причинам Администратор не может весь день сидеть и следить за логами.
Исследование ситуации
Как я уже помечал, в самом Eserv я практически начинающий, поэтому исследовал проблему с другой стороны. Все действия и домены реальны.
Итак у нас в очереди письмо на домен @sandy.ru. С помощью анализатора сетевых пакетов CommView я проследил процесс разрешения имени для отправки почты на указанный выше домен. Для этого SMTPSEND предпринял 8 попыток. Я буду указывать только необходимые (по моему мнению) поля запросов/ответов. В качестве DNS серверов используются провайдерские 212.19.149.53 и 212.19.149.54.
1 запрос
Question Section record:0x1
Name: sandy.ru
Type: 0x000F(15) — MX
Class: 0x00FF(255) — *
1 ответ
Result Code:0x02(2) — Server Failure
2 запрос
Question Section record:0x1
Name: sandy.ru
Type: 0x0001(1) — A
Class: 0x00FF(255) — *
2 ответ
Result Code:0x02(2) — Server Failure
Далее 3,4,5 запросы и ответы на них идентичны 1-му.
6 запрос и ответ идентичны первому но послан уже на второй DNS (54)
7 запрос и ответ идентичны первому и посланы на первый DNS (53)
8 запрос
Question Section record:0x1
Name: sandy.ru
Type: 0x0001(1) — A
Class: 0x001(1) — IN
8 ответ
Answer Section record:0x1
Name: sandy.ru
Type: 0x0001(1) — A
Class: 0x001(1) — IN
TTL: 7200 — 2 Hour
IP address: 195.122.226.36
Процесс разрешения имени закончен. Идет попытка отправки почты на 195.122.226.36, в логе ошибка 10060, т.к. указанный хост не является mail exchanger'ом для домена sandy.ru
Далее пытаемся разрешить MX запись через nslookup. Команды:
set type=mx sandy.ru
Логи CommView:
1 запрос
Question Section record:0x1
Name: sandy.ru
Type: 0x000F(15) — MX
Class: 0x001(1) — IN
1 ответ
Answer Section record:0x1
Name: sandy.ru
Type: 0x000F(15) — MX
Class: 0x001(1) — IN
TTL: 7200 — 2 Hour
Preference: 0x000A(10)
Exchange: relay1.sandy.ru
record:0x2
Name: sandy.ru
Type: 0x000F(15) — MX
Class: 0x001(1) — IN
TTL: 7200 — 2 Hour
Preference: 0x0014(20)
Exchange: relay2.sandy.ru
После этой операции SMTPSEND успешно получает ответ на 1 запрос указанный выше, далее он разрешает имя relay1.sandy.ru и начинается отправка почты.
Субъективные выводы
DNS сервер отказался в начале обрабатывать запросы с типом MX и A, поле Class в которых равно "0x00FF(255)" или по другому "*". Читая http://www.ietf.org/rfc/rfc2929.txt (Domain Name System (DNS) IANA Considerations) на седьмой странице одним из возможных значений поля Class видим:
255
0x00FF — QCLASS Any [RFC 1035].
Читаем http://www.ietf.org/rfc/rfc1035.txt (DOMAIN NAMES — IMPLEMENTATION AND SPECIFICATION), 12 страница, глава "3.2.5. QCLASS values":
QCLASS fields appear in the question section of a query. QCLASS values are a superset of CLASS values; every CLASS is a valid QCLASS. In addition to CLASS values, the following QCLASSes are defined:
Только после того как провайдерский DNS закеширует ответ на запрос type=MX, class=IN, он начинает отвечать на запросы типа type=MX, class=*.
Возможно решение данной проблемы SMTPSEND — это сменить либо добавить способ разрешения MX записи так, чтобы запросы шли с классом IN.
PS
Если бы таких случаев было еденицы, то вопрос бы даже не поднимался, но их количество увеличивается, начальство соответственно недовольно, и мы как обычно крайние. Попрошу что-нибудь предпринять для решения данной проблемы.
А фикс, конечно же, будет.
Хорошо, попробуем покрутить класс запроса, вышлю вам тестовую версию сегодня чуть позже. А пока поставьте -sm для отправки через провайдера (того, чей DNS такой привередливый).
http://www.eserv.ru/download/smtpsend443b.rar
(и с другими изменениями, которые были после вашей 4.38 )
В течении дня пользователи с такой проблемой больше не обращались.
Если возникнут проблемы, обязательно напишем, спасибо за быстрое исправление