Автор Гілка: Налаштування поштовоъ системи  (Прочитано 4783 раз)

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Мої вітання.

Допоможіть зрозуміти, що я зробив не так. Налаштував postfix для відсилання листів. З'єднуюсь з сусіднього комп'ютера, начебто пошта відсилається нормально. Заперечень нема. Налаштував fetchmail для отримання пошти, пошту приймає та віддає postfix`у. А ось postfix чомусь кладе листа в файл /var/spool/mail/postfix, а не віддає на обробку procmail`у. Ось власне й питання, як і де вказати, що листи треба віддавати не користувачу postfix, а програмі procmail. І ще питання, хто що порадить щодо pop3 серверу, який власне повинен приймати з'єднання від декількох клієнтів в локалці й віддавати їм пошту відсортовану procmail`ом?
Linux. The future is open.

Praporshic

  • Гість
Re: Налаштування поштовоъ системи
« Відповідей #1 : 2006-06-22 00:45:10 »
Цитата
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception:  delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"

У якості  pop3/imap можу запропонувати dovecot. Досить простий у налаштуванні, і достатньо потужний (власне, використовую його на хостинг-сервері). Особливо у поєднанні з Qmail-style maildir. Окрім того, він сам авторизує користувачів.

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Налаштування поштовоъ системи
« Відповідей #2 : 2006-06-22 12:31:42 »
Все чудово. :) Але виникли ще проблеми. Тепер я в procmail я не можу один лист покласти двум (або декільком) користувачам. Хто знає як? Кладе одному користувачу, а іншого або ігнорує, або непомічає, або вважає, що вказан один користувач с таким довгим ім`ям.

І ще, postfix не хоче приймати листи якщо в to вказан мій домен.
поштова програма видає:
450 <1111@ign.com.ua>: Recipient address rejected: User unknown in local recipient table
Хотілось би щоб він такі листи віддавав procmail`у. ::)
Linux. The future is open.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Налаштування поштовоъ системи
« Відповідей #3 : 2006-06-23 13:16:26 »
Все чудово. :) Але виникли ще проблеми. Тепер я в procmail я не можу один лист покласти двум (або декільком) користувачам. Хто знає як? Кладе одному користувачу, а іншого або ігнорує, або непомічає, або вважає, що вказан один користувач с таким довгим ім`ям.
Потрібно додавати прапорець "c" (continue - продовжуй) до правил, якщо ви бажаєте продовжити обробку листа після співпадіння.

В кінці додайте загальне правило для переправлення листа в /dev/null без прапорця "c", щоб пошта знищувалася.

Цитата
І ще, postfix не хоче приймати листи якщо в to вказан мій домен.
поштова програма видає:
450 <1111@ign.com.ua>: Recipient address rejected: User unknown in local recipient table
Хотілось би щоб він такі листи віддавав procmail`у. ::)

Навіщо вам стільки спаму, якщо не секрет? :-)
[Fedora Linux]

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Налаштування поштовоъ системи
« Відповідей #4 : 2006-06-23 15:29:51 »
Цитата
І ще, postfix не хоче приймати листи якщо в to вказан мій домен.
поштова програма видає:
450 <1111@ign.com.ua>: Recipient address rejected: User unknown in local recipient table
Хотілось би щоб він такі листи віддавав procmail`у. ::)

Навіщо вам стільки спаму, якщо не секрет? :-)

Незрозумів. :-? Який це спам. Я хочу надіслати листа з одної скриньки (комп`ютера) в іншу (на інший ком`ютер в своїй мережі) не чипаючи smtp провайдера.
Linux. The future is open.

Praporshic

  • Гість
Re: Налаштування поштовоъ системи
« Відповідей #5 : 2006-06-23 15:49:51 »
Щось схоже на те, що шановний пан не прописав свій домен у налаштуваннях:
relay_domains = $mydestination, $virtual_mailbox_domains, $mydomain, /usr/local/etc/postfix/relay-domainsАбо не вказав список отримувачів:
local_recipient_maps = unix:passwd.byname $alias_mapsІ взагалі - конфіг постфікса у студію.

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Налаштування поштовоъ системи
« Відповідей #6 : 2006-06-23 17:31:33 »
Щось схоже на те, що шановний пан не прописав свій домен у налаштуваннях:

Можливо. Налаштовував по статтям з інтернету. ::)

Щось схоже на те, що шановний пан не прописав свій домен у налаштуваннях:

Залюбки. :)

# These are only the parameters changed from a default install
# see /etc/postfix/main.cf.dist for a commented, fuller version of this file.

# These are changed by postfix install script
readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES
sample_directory = /usr/share/doc/postfix-2.1.5/samples
html_directory = /usr/share/doc/postfix-2.1.5/html
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/lib/postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix

# User configurable parameters

mynetworks_style = host
delay_warning_time = 24h
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrakelinux)
unknown_local_recipient_reject_code = 450
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
recipient_delimiter = +
owner_request_special = no
alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases
myhostname = ign.com.ua
mydomain = ign.com.ua
myorigin = $mydomain
mynetworks = 10.0.0.0/24, 127.0.0.0/8
relay_domains = $mydestination
relay_domains_reject_code = 554
defer_transport=smtp
relayhost = mail.ukr.net
#mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME
mailbox_command = /usr/bin/procmail
Linux. The future is open.

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Налаштування поштовоъ системи
« Відповідей #7 : 2006-12-27 16:48:56 »
Мої вітання.

:0c:
* ^*.*ig@ign.com.ua
ig

А він усе в чому зустрічається ig@ign.com.ua кладе в мою скриньку.

Пробував
:0c:
* ^*.ig@ign.com.ua
ig

Так само. Якщо лист приходить на verysig@ign.com.ua , то все це кладеться в мою скриньку.

Як зробити щоб все зайве не потрапляло до мене?
Linux. The future is open.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Налаштування поштовоъ системи
« Відповідей #8 : 2006-12-27 17:58:20 »
Мова йде про procmailrc?
А що ви йому сказали - то він і робить.
^ означає початок рядку, далі йде зірочка - ось не знаю, як воно на це реагує... а ще далі ви кажете - будь-який символ будь-яку кількість раз + ig@ign<будь-який символ>com<будь-який символ>ua .
По-друге, ви вказали флаг c - carbon copy, тобто (як я розумію), воно створює додатковий процес, який опрацьовує поточне правило, а головний процес іде собі далі, і не звертає уваги на правило, тобто лист всеодно пройде далі, навіть якщо він призначений саме ig@ign.com.ua.
Якщо я правильно зрозумів задачу, то вам потрібно дещо типу:
:0
*^(To|Cc|Bcc):(.*[ <])?ig@ign\.com\.ua>?
ig
« Змінено: 2006-12-27 18:19:29 від ISBear »

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Налаштування поштовоъ системи
« Відповідей #9 : 2006-12-27 20:28:31 »
Мова йде про procmailrc?

Так.

По-друге, ви вказали флаг c - carbon copy, тобто (як я розумію), воно створює додатковий процес, який опрацьовує поточне правило, а головний процес іде собі далі, і не звертає уваги на правило, тобто лист всеодно пройде далі, навіть якщо він призначений саме ig@ign.com.ua.

Саме так, бо в листі можуть бути вказані два користувача, наприклад для мене ig@ign.com.ua та не для мене gi@ign.com.ua.

Якщо я правильно зрозумів задачу, то вам потрібно дещо типу:
:0
*^(To|Cc|Bcc):(.*[ <])?ig@ign\.com\.ua>?
ig

Тобто крапку в адресі треба замінити на \. А що означає (.*[ <])? Дужки я здогадався до чого.

Саме Bcc (це ж прихована копія?) не відображається в мене, коли його обробляє procmail...
« Змінено: 2006-12-27 20:29:32 від Ign1111 »
Linux. The future is open.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Налаштування поштовоъ системи
« Відповідей #10 : 2006-12-27 23:23:21 »
Саме так, бо в листі можуть бути вказані два користувача, наприклад для мене ig@ign.com.ua та не для мене gi@ign.com.ua.
А, тоді в першому рядку все правильно - я просто мислив категоріями однокористувацького налаштування :).
Цитата
Тобто крапку в адресі треба замінити на \. А що означає (.*[ <])? Дужки я здогадався до чого.
Так, будь-яку крапку вам треба "відмінити" за допомогою '\', бо інакше крапка буде сприйнята як еквівалент до "будь-який один символ". Це синтаксис регулярних виразів.
Знак питання показує, що попередній символ (в даному випадку завдяки дужкам - увесь вираз в дужках) опціональний, тобто він може бути присутнім, або не бути присутнім.
.* - зірочка - це "нуль, або більше разів попередній символ" (в даному разі - крапка, яка означає "будь-який символ").
[ <] - один з цих символів, це щоб вказати, що між "будь-які символи будь-яку кількість разів" та ig@... повинен бути розділювач - прбіл, або '<'.
В цілому вираз має спрацьовувати на:
To:ig@...
Cc: asdzx safzx zxv ig@...
Bcc: afds sdf sdf dsfs<ig@...
To:sdfs <ig@...
Cc:<ig@...
А взагалі, мабуть, краще використовувати наперед задані макроси TO чи TO_ - вони більш загальні (man procmailrc, в кінці):
*^TO_ig@ign.com.ua[^-a-zA-Z0-9._]*$