Почта для корпоративного сайта

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-16 10:19:28

Здравствуйте!
Система
FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
Apache/2.2.9 (FreeBSD) mod_ssl/2.2.9 OpenSSL/0.9.8i DAV/2
PHP/5.2.6 with Suhosin-Patch

Необходимо настроить отправку почты при регистрации пользователей, при запросе новых паролей и т.д. Вообщем сайт выполнен с помощью CMS в которой по умолчанию подразумевается что на сервере настроен sendmail и для отправки почты в настройках достаточно указать ящик с которого будет уходить почта, это я сделал. Но на сервере то настроен Exim 4.69 и есть мой почтовый ящик который я и прописал в настройках своего сайта. Поэтому при отправке почты на сайте пишет что не возможно отправить почту свяжитесь с администратором :smile:
В php.ini указано следующее

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

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
 sendmail_path =/usr/local/sbin/sendmail -t -l . 
Как я понимаю в директории /usr/local/sbin/ находиться бинарный файл sendmail но при установке exim его по ходу снесли, но это я ужу потом посмотрел когда настройки уже прописал в php.ini. Как мне быть теперь, как сделать чтобы почта ходила с помощью exim, нужен ли sendmail или можно как то по другому. Просто если сносить exim и по новой устанавливать sendmail, а потом опять exim я не справлюсь плох я в unix системах, все настроено было до меня. Вот еще вопрос что это за конфиг mailer.conf, зачем он нужен, и нужно ли в нем что- то прописывать, где про него можно прочитать а также что такое варнинг.

Хостинговая компания 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/

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: Почта для корпоративного сайта

Непрочитанное сообщение mumg » 2009-03-16 14:12:03

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

ln -s /path/to/exim4 /usr/local/sbin/sendmail
все функции сендмыла возьмет на себя exim

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-16 18:03:30

все функции сендмыла возьмет на себя exim
так а сам sendmail должен быть в /usr/local/sbin или нет? ссылку же с него делаем на exim

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Почта для корпоративного сайта

Непрочитанное сообщение zingel » 2009-03-16 18:10:54

он будет двояк, как квадратура круга, он есть и его нет...
Z301171463546 - можно пожертвовать мне денег

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-17 7:28:49

прописал такую команду

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

ln -s /path/to/exim-4.69_2 /usr/local/sbin/sendmail
он мне выругался

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

ln: /usr/local/sbin/sendmail: File exists
и создал в директории /usr/local/sbin/ файл !sendmail
Можно ли как то проверить взял ли exim функции sendmail на себя, потому что почта все равно не отправляется

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Почта для корпоративного сайта

Непрочитанное сообщение zingel » 2009-03-17 9:11:17

это потому, что sendmыло уже самлинк куда то, ну сделайте на него ls, ну и
Z301171463546 - можно пожертвовать мне денег

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: Почта для корпоративного сайта

Непрочитанное сообщение mumg » 2009-03-17 18:21:46

ls -al /usr/local/sbin/sendmail
в моем случае
ls -al /usr/sbin/sendmail
lrwxrwxrwx 1 root root 5 2009-02-18 03:00 /usr/sbin/sendmail -> exim4

чтобы проверить

создаем файл

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

From: source@test.com
To: dest@test.com
Subject: Test

test
выполняем cat файл | sendmail -t
если письмо дошло то все защибись
ЗЫ From и To должны быть валидными, хотя бы To

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-18 7:37:35

Вот что у меня выдало на команду ls -al /usr/local/sbin/sendmail

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

lrwxr-xr-x  1 root  wheel  17 Mar 16 18:19 /usr/local/sbin/sendmail -> /path/to/exim4.69
и вот про это поподробней пожалуйста можно как и какой создать файл, куда его поместить
создаем файл

From: source@test.com
To: dest@test.com
Subject: Test

test

выполняем cat файл | sendmail -t
Да вот еще что последнее написано в логах Exim configuration file /usr/local/etc/exim/configure has the wrong owner?, group, or mode

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: Почта для корпоративного сайта

Непрочитанное сообщение mumg » 2009-03-18 13:28:14

1. любым тесктовым редактором где угодно
2. cat /etc/passwd | grep mail [exim]
cat /etc/group | grep mail [exim]
то что покажется установить в exim

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-18 14:41:20

во-первых спасибо вам за помощь в особенности mumg
Значит первое, я создал в обычном блокноте(текстовом редакторе) файл c именем test.txt в котором прописал

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

From: isaev_mv@mesi.mezhdu.net
To: masyaka@sibmail.com
Subject: Test

test 
и поместил его в каталог /usr/
далее выполнил команду cat /usr/test.txt | sendmail -t на что он мне выругался

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

sendmail: Command not found
.
2. cat /etc/passwd | grep mail [exim]
cat /etc/group | grep mail [exim]
это я как понял вы мне по поводу того что
в логах Exim configuration file /usr/local/etc/exim/configure has the wrong owner?, group, or mode
я это cat /etc/passwd | grep mail [exim] выполняю на что мне система выдает grep: No match.
вот такие вот делишки пока :unknown:

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: Почта для корпоративного сайта

Непрочитанное сообщение mumg » 2009-03-18 15:56:07

для сендмыла укажи полный путь после пайпа

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

cat file | /pat/to/sendmail -t
grep нужно делать сначала такой

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

cat /etc/passwd | grep mail
потом

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

cat/etc/passwd | grep exim
если no match

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

useradd -s /usr/sbin/nologin exim
в configure укажи группу и юзера от которого будет запускаться exim -> exim
а если grep что то найдет то то что он найдет укажи

и само собой
chown -R exim:exim /var/spool/exim4
chown -R exim:exim /var/log/exim4

ну или иным словом, все куда exim пишет ЗАВИСИТ ОТ ДИСТРИБУТИВА

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-21 14:22:14

Вообщем с помощью предыдущих телодвижений у меня ни чего не получилось. Я удалил exim и поставил sendmail и потом опять поставил exim (только вот не понял sendmail удалять надо или нет? я его не удалял ) и остальное сделал по статье sendmail>exim, за что и спасибо автору :smile:
Теперь почта с сайта как бы уходит то есть ни каких сообщений о ошибках нет и все вроде должно быть хорошо с точки зрения юзера который зарегистрировался на сайте :smile: , но эксим в логах теперь пишет такую вещь которая приведена во вложении ( другим способом не знаю как это показать вам :pardon: ) и соответственно письма с регистрационными данными нет :(
Если отправлять почту аутглюком на тот же адрес то есть на маил.ру, то почта туда доставляется, если надо будет конфиг то заодно и подскажите мне как мне его выложить сюда но не скрином
Вложения
mainlog.JPG

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: Почта для корпоративного сайта

Непрочитанное сообщение mumg » 2009-03-22 8:50:36

1. MAILFROM: www@192.168.0.X такого быть не должно - mail.ru рубит сие поделие. в настройках вместо домена IP указал ? поменяй
2. mail.ru загасит почту так и так. у них все неизвестные IP по default в блеклисте
a. писать в mail.ru дайте доступ с доказательствами что не спамер
b. использовать авторизованый SMTP сервер

На сколько я понимаю на предприятии есть свой почтовик ?
если да, то надо использовать не dnslookup, dnslookup убери

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

begin routers

smtp_private:
   driver = accept
   transport = smtp_private_transport
   no_more

begin transports

smtp_private_transport:
    driver = smtp
    hosts  =  адрес почтового сервера который в почте как SMTP выступает

masyaka
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-01-15 7:51:38

Re: Почта для корпоративного сайта

Непрочитанное сообщение masyaka » 2009-03-23 7:34:44

На сколько я понимаю на предприятии есть свой почтовик ?
если да, то надо использовать не dnslookup, dnslookup убери
Сделано все вот таким образом. Есть локальная сеть, в ней три сервера, на одном из них ОС freeBSD и апач,пхп, мускл, соответственно на этом сервере и крутится сайт, и на этом же сервере я и настраиваю эксим, другого отдельного почтового сервера нет. Если я вас правильно понял :pardon:. Значит тогда мне dnslookup так и оставить?
1. MAILFROM: www@192.168.0.X такого быть не должно - mail.ru рубит сие поделие. в настройках вместо домена IP указал ? поменяй

выкладываю конфиг там у меня в настройках указан домен, получается что я когда аутлуком отправляю почту в логах ни чего подобного www@192.168.0.X нет а вместо этого мой почтовый ящик, как и должно быть.
А когда почта с сайта отправляется то и вот это www@192.168.0.X

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






######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################

 primary_hostname = mesi.mezhdu.net


domainlist local_domains = @ 
domainlist relay_to_domains = mesi.mezhdu.net
hostlist   relay_from_hosts = localhost :127.0.0.0/8:192.168.0.0/24


acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

qualify_domain = mesi.mehzdu.net


qualify_recipient = mesi.mezhdu.net


exim_user = mailnull
exim_group = mail
never_users = root


host_lookup = *


rfc1413_hosts = *
rfc1413_query_timeout = 5s



ignore_bounce_errors_after = 2d


timeout_frozen_after = 7d

helo_accept_junk_hosts = 192.168.0.0/16


helo_allow_chars = _

log_selector = \
+all_parents \
+connection_reject \
+incoming_interface \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run

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

begin acl

acl_check_rcpt:

  accept  hosts = :

  deny    message       = Restricted characters in address
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    message       = Restricted characters in address
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
  #############################################################################

  accept  local_parts   = postmaster
          domains       = +local_domains

#  require verify        = sender (вот тут у меня ругался на это я эту строчку закомментировал)


  accept  hosts         = +relay_from_hosts
          control       = submission

  accept  authenticated = *
          control       = submission

  require message = relay not permitted
          domains = +local_domains : +relay_to_domains

  require verify = recipient


  accept


acl_check_data:


  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

smtp_private:
 driver = accept
 transport = smtp_private_transport
 no_more



system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  user = mailnull
  group = mail
  file_transport = address_file
  pipe_transport = address_pipe



userforward:
  driver = redirect
  check_local_user
  file = $home/.forward
  no_verify
  no_expn
  check_ancestor
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  condition = ${if exists{$home/.forward} {yes} {no} }



localuser:
  driver = accept
  check_local_user
  transport = local_delivery
  cannot_route_message = Unknown user


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

begin transports


smtp_private_transport:
 driver = smtp
 hosts = 192.168.0.6 

local_delivery:
  driver = appendfile
  file = /var/mail/$local_part
  delivery_date_add
  envelope_to_add
  return_path_add
  group = mail
  user = $local_part
  mode = 0660
  no_mode_fail_narrower


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


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



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


begin rewrite



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

begin authenticators



# End of Exim configuration file
Посткриптум
спасибо mumg за помощь а то я с этим почтовиком уже честно замучился