Разобраться как выставить exim дефолтным. Нет команды –set.
Пока просто удалил postfix (в итоге он все равно должен был быть удален)
[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 2 /usr/sbin/sendmail.exim Enter to keep the current selection[+], or type selection number: 2
root@host# exiqgrep -i | xargs exim -M
или
root@host# exim -q -v
root@host# exim -Mrm 1ZEKTg-0001Vb-Kf
Если надо много писем, то можно так:
root@host# exiqgrep -i | xargs exim -M
root@host# exim -Mvh 1ZEdbs-0007Ju-Gp
root@host# exim -bp
Будет видно id письма, поля from: и to:
Вывод:
20h 22K 1ZEdbs-0007Ju-Gp <aaa@bbb.ru> ccc@ddd.co.in D eee@fff.gov.cn
aaa@bbb.ru - поле from:
ccc@ddd.co.in - поле to:
D - флаг указывающий на то, что сообщение уже доставлено.
21h 2.9K 1ZEcyR-00075z-Mu <> *** frozen *** aaa@bbb.ru
* frozen * - сообщение заморожено, exim не будет пытаться переслать его.
Посчитать количество писем в очереди:
root@host# exim -bpс
Данную конфигурацию можно использовать когда в организации нет нормальных сопуствующих сервисов (своего домена, днс), а почту с машин мониторинга отправлять надо.
Конфигурация exim, gmail как релей
Конфигурация exim, gmail как релей
primary_hostname = noc1 domainlist local_domains = @ : localhost 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]#
Подобную конфигурацию можно использовать на машинах мониторинга для отправки алармов.
Есть контроль получателей сообщений.
Простая конфигурация exim
Простая конфигурация exim
primary_hostname = noc.mydomain.ru #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 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
Используется при написании правил acl (c действием access) для того, что бы задать поведение exim при несовпадении условий правила.
Например, в одном из правил acl есть несколько условий:
accept domains = xxx.com endpass message = "No such user" verify = recipient
<= message arrival (относительно самого Exim) => normal message delivery -> additional address in same delivery >> cutthrough message delivery *> delivery suppressed by -N ** delivery failed; address bounced == delivery deferred; temporary problem S= размер доставленного сообщения, пишется вместе с "=>"