[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mutt, MTA и провадеры dial-up



> Это да.
> Посему универсальный совет - просто открыть акаунт на рэмблере или еще
> где, и использовать их SMTP сервер (совместно с логином и паролем их
> аккаунта) для отправки почты.
> 
> Правда локальный smtp сервер придется настроить под это дело (чтобы он
> использовал логин/пароль того аккаунта).

А почему не сделать так (у меня уже года два работает):

в exim.conf:
######################################################################
#                      ROUTERS CONFIGURATION                         #
#            Specifies how remote addresses are handled              #
######################################################################
#                          ORDER DOES MATTER                         #
#  A remote address is passed to each in turn until it is accepted.  #
######################################################################

select_smarthost:
  driver = queryprogram
  command = /usr/local/sbin/exim_router

send_to_smarthost:
  driver = lookuphost
  transport = remote_smtp


В /usr/local/sbin/exim_router (только табличка должна быть настроена на
конкретных провайдеров):

#!/bin/bash

pppip()
{
  /sbin/ifconfig ppp0 2>/dev/null |
  sed -n '/.*inet addr.*/ {s/.*inet addr:\([^ ]*\).*/\1/; p; }'
}

and_dot_quad()
{
  echo $1.$2 | awk -F. '
# Old gawk's didn't have "and" builtin
#    function and(x,y)  {
#      res=0
#      for ( p=1; p<256; p*=2 )  {
#        if ( (x%2==1) && (y%2==1) )  res+=p;
#       x=int(x/2); y=int(y/2)
#       }
#      return res
#      }
    { print ( and($1,$5) "." and($2,$6) "." and($3,$7) "." and($4,$8) ) }'
}

if /sbin/route -n | grep eth1 | awk '{print($1)}' | grep -q 0.0.0.0; then
  echo OK remote_smtp mail.dubki.ru bydns_a
  exit 0
fi

ip=`pppip`

if [ "$ip" = "" ]; then
  echo DEFER
elif [ `and_dot_quad $ip 255.0.0.0` = 212.0.0.0 ]; then
  echo OK remote_smtp pop.mtu.ru bydns_a
elif [ `and_dot_quad $ip 255.0.0.0` = 62.0.0.0 ]; then
  echo OK remote_smtp pop.mtu.ru bydns_a
elif [ `and_dot_quad $ip 255.0.0.0` = 195.0.0.0 ]; then
  echo OK remote_smtp koi.aha.ru bydns_a
else
  ifconfig ppp0 2>&1 | mail -s "/usr/local/sbin/exim_router failed" root
  echo DEFER
fi



Reply to: