Регистрация...

Eserv Forum / E3 / Eserv 3 Mail Server Support / smtpsend параметры

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Если не трудно, поясните два параметра:

-rf retry folder — в эту папку будет перемещено письмо, если в течении -rh часов его не удалось доставить? Так? В связи с этим, можно ли использовать в этом качестве папку почтового ящика, чтобы потом по POP3 забрать оттуда скопившиеся письма?

-sh isp_server — этот параметр будет использоваться если письмо не удалось доставить напрямую по МХ? Т.е. запись в DNS существует, а доставить не удается?

Спасибо.
 
Комментарии к этой версии (23.01.2007 16:14) [~mixsv] e17b8d4b
АвторДатаТекстtags
pig23.01.2007 16:46
mixsv пишет: -rf retry folder — в эту папку будет перемещено письмо, если в течении -rh часов его не удалось доставить? Так? В связи с этим, можно ли использовать в этом качестве папку почтового ящика, чтобы потом по POP3 забрать оттуда скопившиеся письма?

Технически можно. Только зачем? Пусть лучше пойдёт в очередь отложенной доставки и продолжает долбиться, но пореже. У меня обычно за сутки уходили, если затыки вдруг случались. Сначала в течение четырёх часов долбились каждые пять минут, потом отъезжали в другую очередь, откуда пытались уйти каждые два часа.

mixsv пишет: -sh isp_server — этот параметр будет использоваться если письмо не удалось доставить напрямую по МХ? Т.е. запись в DNS существует, а доставить не удается?

Например, сервер-получатель лежит. Или мужики в надежде набрать на бутылку оптический кабель выгрызли.
imported
mixsv23.01.2007 17:20
Пока все это чисто теоритический интерес. Кто знает, может когда и понадобится переложить письмо не в retry, а отложить в какой-нибудь ящик.

С этим понятно.

Еще по параметрам. Если параметру -rh присвоить значение 0, что будет? Значение по умолчанию или письмо будет переложено в retry после первой же попытки?
imported
pig23.01.2007 17:54
Если -rh 0, то параметр -rf игнорируется. Это опция для случая, когда письмо уже в retry.
imported
mixsv23.01.2007 18:14
Хм. Интересно. Т.е. в SendMailAppRetry параметр -rh должен обязательно стоять в 0?

А у меня не нулевой.
imported
pig23.01.2007 18:40
Должен быть ноль. См. Eserv3.orig.ini
Если не ноль, то по истечении указанного числа часов (не совсем понятно, от чего — наверное, от даты создания файла) будет попытка переместить в retry, заведомо неудачная. В принципе, можно поставить не ноль, а очень много часов, чтобы параметр -r раньше отработал.
imported
mixsv23.01.2007 19:05
Это наверно мой ляп. На заре освоения Eserv3 проставил всем подряд -rh 1, так и осталось. Исправил.

Кстати, вот ситуация, одним из способов решения которой, может быть перемещение недоставленного письма в ящик, вместо retry.

Если Eserv работает МХ-ом для чужого домена, то соответственно настроен форвард. Если принимающий, чужой сервер ляжет надолго, то на Eserve письмо переложится в retry-папку где я так понимаю, для отправки из которой, применятся SendMailAppRetry-параметр. В этом случае, DNS выдаст наш внешний IP, отправка на который может потребовать нетривиальной настройки фаервола(если он используется). В этом случае, наверно, проще переложить письма в общий ящик и пусть принимающий сервер сам забирает свои письма, когда будет готов для этого.

Вторым вариантом решения: Если бы был параметр, что-то вроде SendMailAppForwardRetry и папка ForwardRetry.
imported
pig23.01.2007 19:57
У меня так и сделано.
imported
mixsv23.01.2007 20:13
pig пишет: У меня так и сделано.


Я так понял по второму варианту. Но в стандартной конфигурации нет этих параметров.

Подскажите как их добавить.
imported
pig23.01.2007 20:31
Хм, в лоб не получится, в штатном планировщике закладки на это нет. Надо из PigMail перетаскивать...
imported
mixsv23.01.2007 22:20
pig пишет: Хм, в лоб не получится, в штатном планировщике закладки на это нет. Надо из PigMail перетаскивать...


Я так понимаю, что для этого надо переходить на PigMail?

Отдельно выдернуть планировщик, думаю, вещь неблагодарная.

Странно, почему в стандартном нет параметров повтора для форварда, ведь это же логично.

Если уж такой "чайник" как я дошел до этого.

Не знаете, подобная доработка не планируется?
imported
pig24.01.2007 01:29
Теперь, видимо, планируется
А про возможности PigMail почитайте (лучше в документации по бете).
imported
mixsv24.01.2007 10:36
Ну чтож, подождем.

С PigMail я знакомился, согласен, что он гибче. Но объяснить и доказать необходимость выделения доп. денег, пусть и небольших, начальству трудно, особенно сейчас. Ведь в целом почта работает и это пока устраивает всех (мои изыскания и интерес никого не интересует).

Спасибо за помощь и внимание.
imported
mixsv24.01.2007 14:00
pig пишет: Хм, в лоб не получится, в штатном планировщике закладки на это нет. Надо из PigMail перетаскивать...


Я тут подумал, а если изменить штатный шедулер следующим образом:

  1. В \data\mail создать папку forwardretry
  2. в Eserv3.ini добавляем параметры в секцию[SMTP]:
  3. Forwardretry={Dirs[Mail]}\forwardretrySendMailAppForwardRetry={SMTP[SmtpSend]} -rh 0 -ln 200 -r 3 -helo {Server[HostName]} -o {Dirs[Temp]}\forwardretry-{RANDOM-ID}-log.xml -f {SMTP[Forwardretry]}\ {SMTP[Return]}
  4. В conf\smtp\delivery создать файл runsendmailappforwardretry.rules.txt следующего содержания:
  5. \ запуск агента отправки почты из очереди повторов форвардаSMTP[SendMailAppForwardRetry] StartApp DROP
  6. Изменить activate.f (plugins\scheduler) до следующего вида:
:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
"     {SMTP[Out]}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?
IF
S" smtp\delivery\RunSendMailApp" EvalRules \ да, инициировать отправку
THEN
S" SMTP[EmailSmtpForward]" EVALUATE ['] (MyCheckEmailForward) ForEachFileRecord \ проделать то же самое с пересылкой
THEN
; TASK: MYSMC-

:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
"     {SMTP[Retry]}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?
IF
S" smtp\delivery\RunSendMailAppRetry" EvalRules \ да, инициировать отправку
THEN
THEN
; TASK: MYSMC-R

:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
"     {SMTP[Forwardretry]}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?
IF
S" smtp\delivery\RunSendMailAppForwardRetry" EvalRules \ да, инициировать отправку
THEN
THEN
; TASK: MYSMC-RF

:NONAME
3000 PAUSE
BEGIN
0     MYSMC- START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-

:NONAME
3500 PAUSE
BEGIN
0     MYSMC-R START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerRetryPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-R

:NONAME
4000 PAUSE
BEGIN
0     MYSMC-RF START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerRetryPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-RF

0 MYSM- START CLOSE-FILE THROW
0 MYSM-R START CLOSE-FILE THROW
0 MYSM-RF START CLOSE-FILE THROW

  1. Перезапустить acSMTP
Как думаете, правильно? Получиться?
imported
pig24.01.2007 14:48
Нет, Forwardretry в чистом виде не пойдёт, там же раскладка по направлениям тоже должна быть. То есть, подкаталоги в retry и обработка по списку, аналогично out.

И нужен smtpsend4 версии 4.24 от 16 ноября прошлого года — только у него командная строка имеет приоритет над INI, и он возьмёт правильный путь для -rf
imported
mixsv24.01.2007 15:41
pig пишет: Нет, Forwardretry в чистом виде не пойдёт, там же раскладка по направлениям тоже должна быть. То есть, подкаталоги в retry и обработка по списку, аналогично out.


Тогда может так?

  1. В \data\mail создать папку forwardretry
  2. в Eserv3.ini добавляем параметры в секцию[SMTP]:
  3. Forwardretry={Dirs[Mail]}\forwardretrySendMailAppForwardRetry={SMTP[SmtpSend]} -rh 0 -ln 200 -r 3 -helo {Server[HostName]} -sm {FIELD2} -p {FIELD3} -o {Dirs[Temp]}\forwardretry-{RANDOM-ID}-log.xml -f {SMTP[Forwardretry]}\{FIELD2}\{FIELD3}\ {SMTP[Return]}Изменить параметр SendMailAppForward добавив ключ –rf {SMTP[Forwardretry]}\{FIELD2}\{FIELD3
  4. В conf\smtp\delivery создать файл runsendmailappforwardretry.rules.txt следующего содержания:
  5. \ запуск агента отправки почты из очереди повторов форвардаSMTP[SendMailAppForwardRetry] StartApp DROP
  6. Добавить в index.f (plugins\scheduler) строки:
  7. \     обработка одной записи списка пересылки почты: (MyCheckEmailForwardRetry) ( — )     " {SMTP[Forwardretry]}\{FIELD2}\{FIELD3}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?     IF S" smtp\delivery\RunSendMailAppForwardRetry" EvalRules \ да, инициировать отправку     THEN;
  8. Изменить activate.f (plugins\scheduler) до следующего вида:
:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
"     {SMTP[Out]}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?
IF
S" smtp\delivery\RunSendMailApp" EvalRules \ да, инициировать отправку
THEN
S" SMTP[EmailSmtpForward]" EVALUATE ['] (MyCheckEmailForward) ForEachFileRecord \ проделать то же самое с пересылкой
THEN
; TASK: MYSMC-

:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
"     {SMTP[Retry]}\*.*" STR@ MyFileExists \ есть ли файлы на отправку?
IF
S" smtp\delivery\RunSendMailAppRetry" EvalRules \ да, инициировать отправку
THEN
THEN
; TASK: MYSMC-R

:NONAME
S" SMTP[SynchronousSend]" EVALUATE >FLAG 0= \ не блокирован ли автомат?
IF
S" SMTP[EmailSmtpForward]" EVALUATE ['] (MyCheckEmailForwardRetry) ForEachFileRecord
THEN
; TASK: MYSMC-RF

:NONAME
3000 PAUSE
BEGIN
0     MYSMC- START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-

:NONAME
3500 PAUSE
BEGIN
0     MYSMC-R START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerRetryPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-R

:NONAME
4000 PAUSE
BEGIN
0     MYSMC-RF START CLOSE-FILE THROW \ запустить поток проверки
[     SMTP[SchedulerRetryPause] >NUM ] LITERAL PAUSE \ минутная пауза
AGAIN
; TASK: MYSM-RF

0 MYSM- START CLOSE-FILE THROW
0 MYSM-R START CLOSE-FILE THROW
0 MYSM-RF START CLOSE-FILE THROW

  1. Перезапустить acSMTP
pig пишет: И нужен smtpsend4 версии 4.24 от 16 ноября прошлого года — только у него командная строка имеет приоритет над INI, и он возьмёт правильный путь для -rf


Подскажите где взять? У меня от 19 июля 2006 г (версию не знаю)
imported
pig24.01.2007 16:28
http://www.lankgroup.ru/files/eserv/smtpsend4.rar

Правки да, примерно такие, только я у себя обошёлся двумя потоками и не стал заводить дополнительный каталог. Просто Retry обрабатывается по той же самой схеме, что и Out. Сначала общая очередь, потом направления по списку.
imported
mixsv24.01.2007 16:47
Да, к ненужности доп. папки я уже тоже пришел.

С потоками тоже разобрался, но доп. функцию в index.f все таки добавить надо? ведь именно там обрабатывается список форварда?

И еще, чтобы изменения в index.f и activate.f не затерлись их нужно переместить в myconf? Всю папку scheduler с путями?
imported
pig24.01.2007 21:26
Да на все вопросы.
imported
pavlad25.01.2007 06:19
mixsv пишет: нужно переместить в myconf


Извиняюсь — что влез в Вашу беседу, но тоже уже давно этот вопрос смущает: если я не использую PigMail, а просто редактирую под себя какие-нить правила и затем файлы сохраню не в acSMTP\conf\ например, а в acSMTP\myconf\
Будет-ли это означать, что правила с одинаковыми названиями будут грузиться при их наличии именно из myconf а не из conf ? Ну и аналогично для acIMAP и acWEB. Или это где-то ещё дополнительно описывать?
imported
mixsv25.01.2007 10:22
Настроил шедулер по новому, посмотрим, что получится.

Большое спасибо pig за помощь и консультацию.

Насчет myconf. Насколько я знаю перед просмотром любых папок conf с настройками сначало проверяется наличие myconf и если она присутствует, настройки и модули берутся оттуда. Это относится ко всем сервисам комплекта. А спросил для очистки совести. Раньше никогда не лазил в файлы .f
imported
pig25.01.2007 11:16
Уточнение для *.f. Плагин (пара index.f — activate.f) копируется в myconf обязательно целиком. Если там есть ещё F-файлы, надо смотреть, каким образом они подключаются. Впрочем, от копирования их в неизменном виде хуже не будет.
imported
Работает на Eserv/5.05567 (10.02.2020)