Страница 1 из 1

Exim не принимает почту из вне

Добавлено: 2008-04-15 7:49:02
karleone
Настраивал Exim по статье http://www.lissyara.su/?id=1173.
Много чего перечитал, но все равно так и не добился что б почта приходила.
Когда отправляю письмо, то The Bat пишет:

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

 Письмо не отправлено. Сервер сообщает: хххххх@хххххххх.ru relaying prohibited. You should authenticate first
В логах exim'a нет записей о приходе письма. В чем может быть беда ? :(

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 8:39:55
hizel
вы случаем не настраивали адентификацию для отправки почты на exim?
полный текущий конфиг exim возможно предоставить?

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 8:53:05
karleone

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

######################################################################
#                  Runtime configuration file for Exim               #
######################################################################
#######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################

primary_hostname = mail.xxxxx.ru
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains  WHERE domain='${domain}' AND (type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domains WHERE domain='${domain}' AND type='RELAY'}}
hostlist   relay_from_hosts = 127.0.0.1
auth_advertise_hosts = *
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /etc/ssl/certs/mail.pem
tls_privatekey = /etc/ssl/certs/mail.pem
log_selector = \
        +all_parents \
        +lost_incoming_connection \
        +received_sender \
        +received_recipients \
        +smtp_confirmation \
        +smtp_syntax_error \
        +smtp_protocol_error \
        -queue_run
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
qualify_domain = xxxxx.ru
allow_domain_literals = false
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
message_size_limit = 10M
smtp_accept_max = 100
smtp_accept_max_per_connection = 5
smtp_accept_max_per_host = 2
split_spool_directory = true
remote_max_parallel = 15
smtp_banner = "Welcome on our mail server!\n\
    This system does not accept Unsolicited \
    Commercial Email\nand will blacklist \
    offenders via our spam processor.\nHave a \
    nice day!\n\n${primary_hostname} ESMTP"

hide mysql_servers = xxx/xxxx/xxxx/xxxx

######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################
begin acl

acl_check_rcpt:

  accept  hosts = :

  deny    domains       = +local_domains 
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  accept  local_parts   = postmaster
          domains       = +local_domains

  #require verify        = sender

  deny    message       = HELO/EHLO required by SMTP RFC
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  accept  authenticated = *
  
   deny message    = "Your IP in HELO - access denied!"
        hosts         =  * : !+relay_from_hosts : !xxxx.xxxx.xxxx
	condition     = ${if eq{$sender_helo_name}\
			{$sender_host_address}{true}{false}}

   deny    condition     = ${if eq{$sender_helo_name}\
        {$interface_address}{yes}{no}}
	         hosts         = !127.0.0.1 : !localhost : *
		 message       = "main IP in your HELO! Access denied!"
  
   deny    condition     = ${if match{$sender_helo_name}\
         {\N^\d+$\N}{yes}{no}}
            hosts         = !127.0.0.1 : !localhost : *
	    message       = "can not be only number in HELO!"
  
  warn
    set acl_m0 = 30s
  warn 
    hosts = +relay_from_hosts:xxx.xxx.xxx.xxx/24
    set acl_m0 = 0s
  warn
    logwrite = Delay $acl_m0 for $sender_host_name \
    [$sender_host_address] with HELO=$sender_helo_name. Mail \
    from $sender_address to $local_part@$domain.
    delay = $acl_m0
  
  accept  domains       = +local_domains
        endpass
	message       = "In my mailserver not stored this user"
	verify        = recipient
	
   accept  domains       = +relay_to_domains
        endpass
	message       = "main server not know how relay to this address"
        verify        = recipient
	
  deny    message       = "you in blacklist - $dnslist_domain \n $dnslist_text"
            dnslists      = opm.blitzed.org : \
	    cbl.abuseat.org : \
	    bl.csma.biz : \
           dynablock.njabl.org
	  
  accept  hosts         = +relay_from_hosts
  deny    message       = "Homo hominus lupus est"
	    

  
acl_check_mime:

  warn decode = default

  deny message = Blacklisted file extension detected ($mime_filename)
       condition = ${if match \
                    {${lc:$mime_filename}} \
                    {\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com|\.vbs|\.cpl)$\N} \
                    {1}{0}}

  deny message = Sorry, noone speaks chinese here
       condition = ${if eq{$mime_charset}{gb2312}{1}{0}}

   
accept

######################################################################
#                      ROUTERS CONFIGURATION                         #
#               Specifies how addresses are handled                  #
######################################################################
#     THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT!       #
# An address is passed to each router in turn until it is accepted.  #
######################################################################

begin routers

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT recipients FROM aliases \
         WHERE local_part='${local_part}' AND domain='${domain}'}}

userforward:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT recipients FROM userforward \
         WHERE local_part='${local_part}' AND domain='${domain}'}}


virtual_localuser:
  driver = accept
  domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
  local_parts = ${lookup mysql{SELECT login from users \
                WHERE login='${local_part}' AND domain='${domain}'}}
  transport = local_delivery

######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################

begin transports

remote_smtp:
  driver = smtp

local_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = /var/mail/$domain/$local_part
  directory_mode = 770
  envelope_to_add
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0660
  quota = ${lookup mysql{SELECT quota FROM users \
          WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
  quota_size_regex = S=(\d+)$
  quota_warn_threshold = 75%
  return_path_add


 address_pipe:
  driver = pipe
  return_output

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add

address_reply:
  driver = autoreply

######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################

begin retry

*                      quota
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h


######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

begin rewrite

######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################

begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT login FROM users \
                        WHERE login = '${quote_mysql:${local_part:$2}}' \
                        AND domain = '${quote_mysql:${domain:$2}}' \
                        AND decrypt = '${quote_mysql:$3}' \
                        AND status = '1'}{yes}{no}}
  server_prompts = :
server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT login FROM users \
                        WHERE login = '${quote_mysql:${local_part:$1}}' \
                        AND domain = '${quote_mysql:${domain:$1}}' \
                        AND decrypt = '${quote_mysql:$2}' \
                        AND status = '1'}{yes}{no}}
  server_prompts = Username:: : Password::
server_set_id = $1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT decrypt FROM users \
                        WHERE login = '${quote_mysql:${local_part:$1}}' \
                        AND domain = '${quote_mysql:${domain:$1}}' \
                        AND status = '1'}{$value}fail}
server_set_id = $1

# End of Exim configuration file

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 12:20:31
dikens3
Суть в том, чобы отправить письмо во внешний мир необходимо указать правильные login и password. Только поле этого exim примет письмо.

Пробуйте отправить письмо на свой домен (своим пользователям). К примеру на postmaster@ваш_домен.ru

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 12:26:55
karleone
dikens3 писал(а):Суть в том, чобы отправить письмо во внешний мир необходимо указать правильные login и password. Только поле этого exim примет письмо.

Пробуйте отправить письмо на свой домен (своим пользователям). К примеру на postmaster@ваш_домен.ru
письма отправляются как локальным так и во вне, а принимаются только от локальных, а из вне вообще ни в какую не хочет :(
ни где так толкового ответа не нашел((

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 13:17:22
dikens3
а из вне вообще ни в какую не хочет :(
Я непонимаю смысла этой фразы. В логах exim есть все попытки подключений к твоему exim. Что в логах? Какова причина отказа?

Если никто не подключался к тебе, тогда и записей в логах тоже не будет. С какого-нибудь mail.ru отправь себе письмо.

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 13:22:40
karleone
dikens3 писал(а):
а из вне вообще ни в какую не хочет :(
Я непонимаю смысла этой фразы. В логах exim есть все попытки подключений к твоему exim. Что в логах? Какова причина отказа?

Если никто не подключался к тебе, тогда и записей в логах тоже не будет. С какого-нибудь mail.ru отправь себе письмо.
в логах нет попыток подключения :(
но клиент пишет что соединени прошло успешно и выкидывает потом на

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

 Письмо не отправлено. Сервер сообщает: хххххх@хххххххх.ru relaying prohibited. You should authenticate first

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 13:34:45
dikens3
в логах нет попыток подключения :(
Посмотри DNS, mx запись и т.п.

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 13:44:26
karleone
dikens3 писал(а):
в логах нет попыток подключения :(
Посмотри DNS, mx запись и т.п.
DNS настроена правильно ....

Re: Exim не принимает почту из вне

Добавлено: 2008-04-15 14:04:54
dikens3
Прогони вот такую конструкцию и посмотри:

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

#!/bin/sh

# Тестирование от mail.ru
(echo "EHLO mxs.mail.ru"; echo "MAIL FROM:user@mail.ru"; echo "RCPT TO: user@mydomain.ru"; echo "DATA"; echo "Subject: test"; echo "."; echo "QUIT";) | exim -d -bhc 194.67.23.20 > testlog 2>&1