ошибка при выполнении команды : m4 sendmail.mc > sendmail.cf

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
little_devil
рядовой
Сообщения: 38
Зарегистрирован: 2015-04-20 19:31:49

ошибка при выполнении команды : m4 sendmail.mc > sendmail.cf

Непрочитанное сообщение little_devil » 2015-09-28 20:29:42

Доброго времени суток!,помогите пожалуйста при выполнении команды m4 sendmail.mc > sendmail.cf,получаю ошибку :

Код: Выделить всё

*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -T<TMPF> -o /etc/mail/access.db)
содержимое файла sendmail.mc:

Код: Выделить всё

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A y')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
в логах следующая информация :

Код: Выделить всё

Sep 28 20:11:12 moskow-ts3 sm-msp-queue[23994]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:12:00 moskow-ts3 sendmail[24135]: NOQUEUE: SYSERR(apache): No local mailer defined
Sep 28 20:14:55 moskow-ts3 sendmail[24724]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:15:33 moskow-ts3 sendmail[24922]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:17:33 moskow-ts3 sendmail[25344]: starting daemon (8.14.7): SMTP+queueing@01:00:00
Sep 28 20:17:34 moskow-ts3 sm-msp-queue[25358]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:17:58 moskow-ts3 sendmail[25416]: NOQUEUE: SYSERR(root): No local mailer defined

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

ошибка при выполнении команды : m4 sendmail.mc > sendmail.cf

Непрочитанное сообщение guest » 2015-09-29 19:39:50

little_devil писал(а):Доброго времени суток!,помогите пожалуйста при выполнении команды m4 sendmail.mc > sendmail.cf,получаю ошибку :

Код: Выделить всё

*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -T<TMPF> -o /etc/mail/access.db)
содержимое файла sendmail.mc:

Код: Выделить всё

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A y')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
в логах следующая информация :

Код: Выделить всё

Sep 28 20:11:12 moskow-ts3 sm-msp-queue[23994]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:12:00 moskow-ts3 sendmail[24135]: NOQUEUE: SYSERR(apache): No local mailer defined
Sep 28 20:14:55 moskow-ts3 sendmail[24724]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:15:33 moskow-ts3 sendmail[24922]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:17:33 moskow-ts3 sendmail[25344]: starting daemon (8.14.7): SMTP+queueing@01:00:00
Sep 28 20:17:34 moskow-ts3 sm-msp-queue[25358]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:17:58 moskow-ts3 sendmail[25416]: NOQUEUE: SYSERR(root): No local mailer defined
плохо все, сначала логи:

No local mailer defined - не определен локальный mailer, потому как Вы, вероятно хотите
использовать procmail, два варианта использования:
- как LDA -> FEATURE(local_procmail)
- как MAILER -> MAILER(procmail)
ну и разумеется можно И ТО И ДРУГОЕ, procmail будет и LDA и MAILER, однако определить
MAILER(local) нужно, у нас им будет procmail

sendmail.cf - строка 63, вместо DAEMON_OPTIONS -> m4 сгенерил AEMON_OPTIONS и в результате
никаких макроподстановок, sendmail.cf запорчен.
Это возможно из-за ошибок в sendmail.mc - неверные комментарии, незакрытые скобки или
`options' - непарные или неверно использованные, или неправильный парсинг последующих
опций после ошибочной строки.

Sorry, лень разбирать весь mc, явная ошибка:

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')

потом:
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u') - очень сомнительно...
лучше использовать отдельно - local_procmail для задания procmail как LDA:
FEATURE(local_procmail)
и отдельно дефайны для задания пути к procmail и флагов (хотя все это должно быть определено
через OSTYPE по идее)

например (флаги правьте на свое усмотрение):

define(`confDEF_USER_ID',``8:12'')dnl
OSTYPE(`linux')dnl
...
dnl определяем где procmail
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
dnl задаем флаги и аргументы для MAIL LOCAL, у нас им будет procmail, флаги и аргументы под себя
define(`LOCAL_MAILER_FLAGS', `ShPfn')dnl
define(`LOCAL_MAILER_ARGS', `procmail -a $h -d $u')dnl
...
...
dnl procmail у нас будет LDA, флаги и аргументы определены выше
FEATURE(`local_procmail')dnl
...
...
dnl завершаться должно так, определяем локальный mailer, smtp и mailer'ом у нас будет procmail
dnl порядок следования трех нижних строк СТРОГО не менять
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`procmail')dnl

использование препроцессора m4, можно такой скрипт:

Код: Выделить всё

#!/bin/sh

if [ $# -ne 2 ]; then
   echo "Usage: do-cf name.mc name.cf"
   exit 0
fi

#SENDMAIL_CF_DIR="/usr/share/sendmail/cf"
SENDMAIL_CF_DIR="/usr/src/contrib/sendmail/cf"
M4="/usr/bin/m4"

${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_CF_DIR}/m4/cf.m4 $1 > $2

echo "New Sendmail config for" $1 done $2
ибо m4 нужно определить где CF_DIR и макрос cf.m4, скрипт можно поправить под себя,
а полная команда будет такая

# m4 -D_CF_DIR_=/usr/share/sendmail-cf /usr/share/sendmail-cf/m4/cf.m4 test.mc > test.cf
где test.mc - наш mc из которого препроцессор сгенерить cf, вместо вывода на экран, направляем
его в файл

теперь вроде все разобрано, поправьте под себя LOCAL_MAILER_[FLAGS и ARGS]

ссылки:
https://www.sendmail.com/sm/open_source ... tures.html
http://linux.yaroslavl.ru/docs/conf/sec ... h15_1.html

little_devil
рядовой
Сообщения: 38
Зарегистрирован: 2015-04-20 19:31:49

ошибка при выполнении команды : m4 sendmail.mc > sendmail.cf

Непрочитанное сообщение little_devil » 2015-09-29 20:14:18

guest писал(а):
little_devil писал(а):Доброго времени суток!,помогите пожалуйста при выполнении команды m4 sendmail.mc > sendmail.cf,получаю ошибку :

Код: Выделить всё

*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -T<TMPF> -o /etc/mail/access.db)
содержимое файла sendmail.mc:

Код: Выделить всё

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A y')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
в логах следующая информация :

Код: Выделить всё

Sep 28 20:11:12 moskow-ts3 sm-msp-queue[23994]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:12:00 moskow-ts3 sendmail[24135]: NOQUEUE: SYSERR(apache): No local mailer defined
Sep 28 20:14:55 moskow-ts3 sendmail[24724]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:15:33 moskow-ts3 sendmail[24922]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 63: unknown configuration line "AEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA)"
Sep 28 20:17:33 moskow-ts3 sendmail[25344]: starting daemon (8.14.7): SMTP+queueing@01:00:00
Sep 28 20:17:34 moskow-ts3 sm-msp-queue[25358]: NOQUEUE: SYSERR(root): No local mailer defined
Sep 28 20:17:58 moskow-ts3 sendmail[25416]: NOQUEUE: SYSERR(root): No local mailer defined
плохо все, сначала логи:

No local mailer defined - не определен локальный mailer, потому как Вы, вероятно хотите
использовать procmail, два варианта использования:
- как LDA -> FEATURE(local_procmail)
- как MAILER -> MAILER(procmail)
ну и разумеется можно И ТО И ДРУГОЕ, procmail будет и LDA и MAILER, однако определить
MAILER(local) нужно, у нас им будет procmail

sendmail.cf - строка 63, вместо DAEMON_OPTIONS -> m4 сгенерил AEMON_OPTIONS и в результате
никаких макроподстановок, sendmail.cf запорчен.
Это возможно из-за ошибок в sendmail.mc - неверные комментарии, незакрытые скобки или
`options' - непарные или неверно использованные, или неправильный парсинг последующих
опций после ошибочной строки.

Sorry, лень разбирать весь mc, явная ошибка:

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')

потом:
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u') - очень сомнительно...
лучше использовать отдельно - local_procmail для задания procmail как LDA:
FEATURE(local_procmail)
и отдельно дефайны для задания пути к procmail и флагов (хотя все это должно быть определено
через OSTYPE по идее)

например (флаги правьте на свое усмотрение):

define(`confDEF_USER_ID',``8:12'')dnl
OSTYPE(`linux')dnl
...
dnl определяем где procmail
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
dnl задаем флаги и аргументы для MAIL LOCAL, у нас им будет procmail, флаги и аргументы под себя
define(`LOCAL_MAILER_FLAGS', `ShPfn')dnl
define(`LOCAL_MAILER_ARGS', `procmail -a $h -d $u')dnl
...
...
dnl procmail у нас будет LDA, флаги и аргументы определены выше
FEATURE(`local_procmail')dnl
...
...
dnl завершаться должно так, определяем локальный mailer, smtp и mailer'ом у нас будет procmail
dnl порядок следования трех нижних строк СТРОГО не менять
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`procmail')dnl

использование препроцессора m4, можно такой скрипт:

Код: Выделить всё

#!/bin/sh

if [ $# -ne 2 ]; then
   echo "Usage: do-cf name.mc name.cf"
   exit 0
fi

#SENDMAIL_CF_DIR="/usr/share/sendmail/cf"
SENDMAIL_CF_DIR="/usr/src/contrib/sendmail/cf"
M4="/usr/bin/m4"

${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_CF_DIR}/m4/cf.m4 $1 > $2

echo "New Sendmail config for" $1 done $2
ибо m4 нужно определить где CF_DIR и макрос cf.m4, скрипт можно поправить под себя,
а полная команда будет такая

# m4 -D_CF_DIR_=/usr/share/sendmail-cf /usr/share/sendmail-cf/m4/cf.m4 test.mc > test.cf
где test.mc - наш mc из которого препроцессор сгенерить cf, вместо вывода на экран, направляем
его в файл

теперь вроде все разобрано, поправьте под себя LOCAL_MAILER_[FLAGS и ARGS]

ссылки:
https://www.sendmail.com/sm/open_source ... tures.html
http://linux.yaroslavl.ru/docs/conf/sec ... h15_1.html
Спасибо большое))),все получилось))))