Eu tenho batido minha cabeça contra este problema por 2 semanas. O que eu estou tentando fazer é canalizar um alias de sendmail (catchall para um domínio virtusal) para um script php. No entanto, sempre recebo o seguinte erro (não é possível enviar diretamente para programas):
7 de outubro 14:35:49 fut-02 sm-mta [14057]: o97LZlmh014057: < [email protected]> ... Não é possível enviar diretamente para programas
7 de outubro 14:35:49 fut-02 sm-mta [14057]: o97LZlmh014057: de =, tamanho = 0, classe = 0, nrcpts = 0, proto = ESMTP, daemon = MTA-v4, relay = mail-ww0- f46.google.com [74.125.82.46]
Eu tentei os seguintes aliases no meu arquivo virtusers:
@domain.com "|php -q /home/myuser/myscript.php"
@domain.com "|/usr/bin/php5 -q /home/myuser/myscript.php"
@domain.com "|php5 /home/myuser/myscript.php"
@domain.com "|myscript.php"
@domain.com "|php5 myscript.php"
Eu tentei ativar o smrsh no arquivo sendmail.mc de duas maneiras diferentes:
FEATURE('smrsh','/usr/lib/sm.bin/smrsh')dnl
FEATURE('smrsh')dnl
Eu então tentei ligar / usr / bin / php, / usr / bin / php5, (o binário real), e o próprio script para / etc / mail / smrsh /. Eu também tentei desabilitar o smrsh por completo. Cada teste resulta no mesmo erro. Para verificar se o smrsh está funcionando, posso executar com êxito:
/usr/lib/sm.bin/smrsh -c "/usr/bin/php5 -q /home/user/myscript.php"
Uma cópia do meu sendmail.mc está no final desta postagem.
Estou sentindo falta de algo óbvio? Existe algum outro lugar na configuração do sendmail do Ubuntu / Debian que pode bloquear o envio de mensagens para scripts?
FWIW, eu tentei esta configuração no Ubuntu 10.10 RC e Debian 5. Mesmos resultados em ambos, com a exceção que o padrão sendmail.mc do Debians vem formatado incorretamente (tinha FEATURES após as diretivas MAILER).
divert(0)dnl
#
# Copyright (c) 1998-2005 Richard Nelson. All Rights Reserved.
#
# This file is used to configure Sendmail for use with Debian systems.
#
define('_USE_ETC_MAIL_')dnl
include('/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID('$Id: sendmail.mc, v 8.14.3-9.2ubuntu1 2010-08-03 06:56:05 cowboy Exp $')
OSTYPE('debian')dnl
DOMAIN('debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine('confHOST_STATUS_DIRECTORY')dnl #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl # into this directory before writing files.
dnl # If *all* your user accounts are under /home then use that
dnl # instead - it will prevent any writes outside of /home !
dnl # define('confSAFE_FILE_ENV', '')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove ', Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE('no_default_msa')dnl
dnl DAEMON_OPTIONS('Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp')dnl
dnl DAEMON_OPTIONS('Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS('Family=inet, Name=MSP-v4, Port=submission, M=Ea')dnl
dnl #
dnl # Be somewhat anal in what we allow
dnl define('confPRIVACY_FLAGS',dnl
dnl 'needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define('confCONNECTION_RATE_THROTTLE', '15')dnl
define('confCONNECTION_RATE_WINDOW_SIZE','10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE('use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE('access_db', , 'skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE('greet_pause', '1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE('delay_checks', 'friend', 'n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define('confBAD_RCPT_THROTTLE','3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE('conncontrol', 'nodelay', 'terminate')dnl
FEATURE('ratecontrol', 'nodelay', 'terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define('confCON_EXPENSIVE','True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include('/etc/mail/m4/dialup.m4')dnl
include('/etc/mail/m4/provider.m4')dnl
dnl #
dnl # Default Mailer setup
FEATURE('smrsh','/usr/lib/sm.bin/smrsh')dnl
FEATURE('virtusertable', 'hash /etc/mail/virtusers')dnl
VIRTUSER_DOMAIN_FILE('/etc/mail/virtdomains')dnl
MAILER_DEFINITIONS
MAILER('local')dnl
MAILER('smtp')dnl