User Tools

Site Tools


qnote:exim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
qnote:exim [2017/04/19 17:53] kqnote:exim [2024/10/09 13:48] (current) – [Удалить письмо из очереди] k
Line 1: Line 1:
 ===== Быстрые заметки по Exim ===== ===== Быстрые заметки по Exim =====
 +
 +==== Exim как дефолтный MTA в системе ====
 +
 +FIXME Разобраться как выставить exim дефолтным. Нет команды --set. \\
 +FIXME Пока просто удалил postfix (в итоге он все равно должен был быть удален)
 + 
 +<code>
 +[root@noc exim]# alternatives --display mta
 +mta - status is auto.
 + link currently points to /usr/sbin/sendmail.postfix
 +/usr/sbin/sendmail.postfix - priority 30
 + slave mta-pam: /etc/pam.d/smtp.postfix
 + slave mta-mailq: /usr/bin/mailq.postfix
 + slave mta-newaliases: /usr/bin/newaliases.postfix
 + slave mta-rmail: /usr/bin/rmail.postfix
 + slave mta-rsmtp: (null)
 + slave mta-runq: (null)
 + slave mta-sendmail: /usr/lib/sendmail.postfix
 + slave mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
 + slave mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
 + slave mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
 + slave mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
 +/usr/sbin/sendmail.exim - priority 10
 + slave mta-pam: /etc/pam.d/exim
 + slave mta-mailq: /usr/bin/mailq.exim
 + slave mta-newaliases: /usr/bin/newaliases.exim
 + slave mta-rmail: /usr/bin/rmail.exim
 + slave mta-rsmtp: /usr/bin/rsmtp.exim
 + slave mta-runq: /usr/bin/runq.exim
 + slave mta-sendmail: /usr/lib/sendmail.exim
 + slave mta-mailqman: /usr/share/man/man8/exim.8.gz
 + slave mta-newaliasesman: (null)
 + slave mta-aliasesman: (null)
 + slave mta-sendmailman: (null)
 +Current `best' version is /usr/sbin/sendmail.postfix.
 +[root@noc exim]# alternatives --config mta
 +
 +There are 2 programs which provide 'mta'.
 +
 +  Selection    Command
 +-----------------------------------------------
 +*+ 1           /usr/sbin/sendmail.postfix
 +             /usr/sbin/sendmail.exim
 +
 +Enter to keep the current selection[+], or type selection number: 2   
 +</code>
 +
 ==== Запуск очереди ==== ==== Запуск очереди ====
 root@host# exiqgrep -i  | xargs exim -M\\ root@host# exiqgrep -i  | xargs exim -M\\
Line 7: Line 54:
 ---- ----
  
-==== Удалить писmмо из очереди ===+==== Удалить письмо из очереди ===
 root@host# exim -Mrm 1ZEKTg-0001Vb-Kf\\ root@host# exim -Mrm 1ZEKTg-0001Vb-Kf\\
 +
 Если надо много писем, то можно так:\\ Если надо много писем, то можно так:\\
-root@host# exiqgrep -i  | xargs exim -M+root@host# exiqgrep -i  | xargs exim -M\\ 
 +[[https://handyhost.ru/help/vps-i-vyidelennyie-servera/kak-ochistit-ochered-exim.html|или так]]\\ 
 +exipick -i | xargs exim -Mrm 
 + 
  
 ----  ---- 
Line 47: Line 99:
 ===== Элементы конфигурации ===== ===== Элементы конфигурации =====
  
-==== endpass ==== +==== Простая конфигурация exim c отправкой писем через gmail ==== 
-Используется при написании правил acl (c действием access) для того, что бы задать поведение exim при несовпадении условий правила.\\  + 
-Например, в одном из правил acl есть несколько условий:+Данную конфигурацию можно использовать когда в организации нет нормальных сопуствующих сервисов (своего домена, днс), а почту с машин мониторинга отправлять надо.  
 + 
 +<hidden Конфигурация exim, gmail как релей
 <code> <code>
-accept      domains         xxx.com +primary_hostname = noc1 
-            endpass + 
-            message         "No such user" +domainlist local_domains = @ : localhost 
-            verify             recipient+hostlist   relay_from_hosts = 127.0.0.1 
 + 
 +daemon_smtp_ports = 25 
 +local_interfaces = 127.0.0.1 
 + 
 +never_users = root 
 +rfc1413_hosts = * 
 +rfc1413_query_timeout = 5s 
 +ignore_bounce_errors_after = 2d 
 +timeout_frozen_after = 7d 
 + 
 +begin routers 
 + 
 +send_via_gmail: 
 +  condition = ${lookup {$local_part@$domain} lsearch {/etc/exim/to_inet} {yes} {no} } 
 +  driver = manualroute 
 +  domains = ! +local_domains 
 +  transport = gmail_smtp 
 +  route_list = * smtp.gmail.com 
 + 
 +system_aliases: 
 +  driver redirect 
 +  allow_fail 
 +  allow_defer 
 +  data = ${lookup{$local_part}lsearch{/etc/aliases}} 
 +user = exim 
 +  file_transport address_file 
 +  pipe_transport = address_pipe 
 + 
 +localuser: 
 +  driver = accept 
 +  check_local_user 
 +# local_part_suffix = +* : -* 
 +# local_part_suffix_optional 
 +  transport = local_delivery 
 +  cannot_route_message = Unknown user 
 + 
 +begin transports 
 + 
 +gmail_smtp: 
 +  driver = smtp 
 +  port = 587 
 +  hosts_require_auth = * 
 +  hosts_require_tls = * 
 + 
 +local_delivery: 
 +  driver = appendfile 
 +  file = /var/mail/$local_part 
 +  delivery_date_add 
 +  envelope_to_add 
 +  return_path_add 
 +  group = mail 
 +  mode = 0660 
 + 
 +address_pipe: 
 +  driver = pipe 
 +  return_output 
 + 
 +address_file: 
 +  driver = appendfile 
 +  delivery_date_add 
 +  envelope_to_add 
 +  return_path_add 
 + 
 +begin authenticators 
 + 
 +gmail_login: 
 +  driver = plaintext 
 +  public_name = LOGIN 
 +  client_send = : XXXX@gmail.com : PASSWORD6 
 + 
 +begin retry 
 + 
 +*  *   F,2h,15m; G,16h,1h,1.5; F,4d,6h[root@noc1 mail]# 
 </code> </code>
 +</hidden>
  
 +==== Простая конфигурация exim ====
 +Подобную конфигурацию можно использовать на машинах мониторинга для отправки алармов.\\
 +Есть контроль получателей сообщений. 
  
 +<hidden Простая конфигурация exim>
 +<code>
 + primary_hostname = noc.mydomain.ru
  
--- Если письмо адресовано не домену xxx.com (условие domain), то письмо передается для дальнейшей проверки  по оставшимся правилам aclНесовпадение условий правила acl произошло до endpass+ #domainlist local_domains = @ : localhost : localhost.localdomain 
 + domainlist local_domains = @ : localhost 
 + #domainlist relay_to_domains = 
 + hostlist   relay_from_hosts = 127.0.0.1
  
 + daemon_smtp_ports = 25
 + local_interfaces = 127.0.0.1
  
--- Если письмо адресовано домену xxx.com, но не прошла проверка получателся (условие verify), то такое письмо дропается с сообщением "No such user" Несовпадение условий правила acl произошло после endpass. + never_users = root 
 + rfc1413_hosts = * 
 + rfc1413_query_timeout = 5s 
 + ignore_bounce_errors_after = 2d 
 + timeout_frozen_after = 7d
  
 + begin routers
  
 + mydomain_ex_router:
 +         condition = ${lookup {$local_part@$domain} lsearch {/etc/exim4/to_exchange} {yes} {no} }
 +         driver = manualroute
 +         transport = remote_smtp
 +         route_data = 10.10.10.253
  
 + dnslookup:
 +         condition = ${lookup {$local_part@$domain} lsearch {/etc/exim4/to_inet} {yes} {no} }
 +         driver = dnslookup
 +         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{$local_part}lsearch{/etc/aliases}}
 + # user = exim
 +   file_transport = address_file
 +   pipe_transport = address_pipe
 +
 +
 +localuser:
 +   driver = accept
 +   check_local_user
 + # local_part_suffix = +* : -*
 + # local_part_suffix_optional
 +   transport = local_delivery
 +   cannot_route_message = Unknown user
 +
 +begin transports
 +
 + remote_smtp:
 +   driver = smtp
 +
 + local_delivery:
 +   driver = appendfile
 +   file = /var/mail/$local_part
 +   delivery_date_add
 +   envelope_to_add
 +   return_path_add
 +   group = mail
 +   mode = 0660
 +
 + address_pipe:
 +   driver = pipe
 +   return_output
 +
 + address_file:
 +   driver = appendfile
 +   delivery_date_add
 +   envelope_to_add
 +   return_path_add
 +
 +
 +begin retry
 +
 +                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
 +</code>
 +</hidden>
 +
 +----
 +
 +==== Endpass ====
 +Используется при написании правил acl (c действием access) для того, что бы задать поведение exim при несовпадении условий правила.\\ 
 +
 +
 +
 +Например, в одном из правил acl есть несколько условий:
 +<code>
 +accept      domains         = xxx.com
 +            endpass
 +            message         = "No such user"
 +            verify          = recipient
 +</code>
  
--- Если письмо адресовано домену xxx.com (условие domain), то оно принимает и дальнейшая проверка по правилам acl прекращается. +  * Если письмо адресовано не домену xxx.com (условие domain), то письмо передается для дальнейшей проверки по оставшимся правилам acl. \\ **Несовпадение условий правила acl произошло до endpass письмо идет дальше.** 
 +  * Если письмо адресовано домену xxx.com, но не прошла проверка получателся (условие verify), то такое письмо дропается с сообщением "No such user" \\ **Несовпадение условий правила acl произошло после endpass письмо дальше не идет. ** 
 +  * Если письмо адресовано домену xxx.com (условие domain) и успешно прошла проверка получателя (условие verify), то такое письмо принимается и дальнейшая проверка по правилам acl прекращается. 
  
  
qnote/exim.1492613588.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki