postfix, procmail i powiadomienie przez ekg

Konfiguracja serwerów, usług, itp.
matx132
Posty: 42
Rejestracja: 11 kwietnia 2009, 21:21

postfix, procmail i powiadomienie przez ekg

Post autor: matx132 »

Witam.
Próbuje zrobić powiadomienie gg o nowej wiadomości e-mail.

Moje ustawienia postfiksa.
Main.cf

Kod: Zaznacz cały

command_directory = /usr/sbin
mail_owner = postfix
mydomain = domena(wycieta)
myhostname = moj host(wyciety)
myorigin = /etc/mailname
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $mydomain, $myhostname, localhost, localhost.localdomain,
mynetworks = 127.0.0.0/8
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mail_spool_directory = /home/
smtpd_banner = ESMTP on $myhostname !
mailbox_size_limit = 0
recipient_delimiter = +
biff = no
append_dot_mydomain = no
relayhost =

#smtpd_sasl_auth_enable = yes
#smtpd_sasl_security_options = noanonymous
#smtpd_recipient_restrictions =
#  permit_sasl_authenticated,
#  permit_mynetworks,
#  reject_unauth_destination

#AUTH SMTP
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname

smtpd_recipient_restrictions = permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unknown_recipient_domain,
 reject_non_fqdn_recipient
smtpd_client_restrictions = permit_sasl_authenticated,
  reject_unknown_client,
  reject_rbl_client dul.dnsbl.sorbs.net,
 # reject_rbl_client list.dsbl.org,
  reject_rbl_client sbl.spamhaus.org,
  reject_rbl_client cbl.abuseat.org
smtpd_sender_restrictions = permit_sasl_authenticated,
  reject_unknown_sender_domain,
  reject_non_fqdn_sender,
  reject_unknown_address
#TLS
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/mail.pem
smtpd_tls_cert_file = /etc/postfix/ssl/mail.pem
smtpd_tls_CAfile = /etc/postfix/ssl/mail.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
tls_random_source = dev:/dev/urandom

mailbox_command = procmail -a "$EXTENSION"
plik /etc/procmailrc

Kod: Zaznacz cały

SHELL=/bin/bash
VERBOSE=off
LOGFILE=/var/log/procmail/procmail.log
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/
oraz plik .procmailrc znajdujący się w /home/użytkownik

Kod: Zaznacz cały

NEW_SUBJECT='formail -xSubject'
MAIL_FROM='formail -xFrom:'
mail_reply='formail -xReturn-Path'
do_kogo=`formail -xTo:'

:0 c
        | /home/[b]użytkownik[/b]/powiadom "$MAIL_FROM" "$NEW_SUBJECT" "-" "$do_kogo"
Plik powiadom:

Kod: Zaznacz cały

#!/usr/bin/perl

$kto=@ARGV[0];
$temat=@ARGV[1];

open(sms,"|ekg msg gg ' $kto --> $temat ' >/dev/null");
close(sms);
Sam plik powiadom działa, e-maile dochodzą dobrze ale niestety nie powiadamia mnie na gg?

Czy ktoś wie dlaczego tak się dzieje i jak to naprawić?
Z góry dziękuje (docelowo chciałbym aby wszystko czyli od kogo temat i treść była przekazywana do php jeśli można to prosiłbym o pomoc również z tym).
Dziękuje.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Pozwolę sobie odświeżyć ten temat. Używam postfiksa z bazą użytkowników zapisaną w MySQL. W moim pliku main.cf znajduje się wpis:

Kod: Zaznacz cały

mailbox_command = procmail -a "$EXTENSION"
(nie wiem czy w ogóle potrzebny). Nigdzie nie mogę znaleźć pliku procmailrc. Co muszę zrobić, aby jednemu z wirtualnych użytkowników włączyć powiadomienia SMS?

Dodane:
Posiedziałem dzisiaj nad tym zagadnieniem i oto co uzyskałem. Jak już mówiłem mam postfiksa z wirtualnym systemem użytkowników (mysql). W jego pliku konfiguracyjnym znajdują się m.in takie ustawienia:

Kod: Zaznacz cały

cat /etc/postfix/main.cf
myorigin = /etc/mailname
mydestination = poczta.mojadomena.pl, localhost, localhost.localdomain
[...]
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
[...]
mailbox_command = procmail -a "$EXTENSION"
Poprzez virtual_mailbox_domains mam skonfigurowane mojedomena.pl i innadomena.pl. Plik /etc/procmailrc wygląda u mnie tak:

Kod: Zaznacz cały

SHELL=/bin/bash
VERBOSE=off
SUBJECT=`formail -zxSubject:`
FROM=`formail -rt -xTo:`

# SMS Notify
:0 c
* .*
        | echo "$FROM - $SUBJECT" | sudo /usr/bin/gnokii --sendsms +48xxxxxx
Długo się męczyłem wysyłając maile na

Kod: Zaznacz cały

[EMAIL="mojadres@mojedomena.pl"]mojadres@mojedomena.pl[/EMAIL]
Dopiero gdy spróbowałem przesłać coś na

Kod: Zaznacz cały

[EMAIL="mojadres@poczta.mojadomena.pl"]mojadres@poczta.mojadomena.pl[/EMAIL]
dostałem upragnionego SMS-a. Idąc za tropem dodałem mojadomena.pl i innadomena.pl do mydestination lecz to nie pomogło. Nadal powiadomienia działają tylko na poczta.mojadomena.pl

Co może być tego przyczyną?

Edycja:
Dowiedziałem się tutaj, że wirtualny system nie korzysta z procmaila. Nie chciało mi się reorganizować całego postfiksa więc znalazłem obejście. Wszystkie maile do mnie przekierowane są na

Kod: Zaznacz cały

[email]mojekonto@poczta.mojadomena.pl[/email]
gdzie mojekonto odpowiada użytkownikowi w systemie. Ten użytkownik, czyli ja ma w swoim pliku regułkę, która odbija maila z powrotem na inne wirtualne konto (aby uniknąć zapętlenia), a następnie wysyła powiadomienie SMS.

Co się tyczy pana matx123: spójrz na swój plik .procmailrc. Zamień apostrofy na znak `, a jeśli to nie pomoże to sprawdź, czy skrypt /home/użytkownik/powiadom działa poprawnie. Wywołaj go po prostu z konsoli.
ODPOWIEDZ