Как сделать пересылку всей почты, отправляемой по SMTP

vrom
На сайте с 15.12.2005
Offline
84
1631

Вопрос:

клиенту нужно, чтобы вся почта отправляемая его сотрудниками из аутлука

копировалась на его ящик (либо в какое-то одно место)

sendmail такого не поддерживает.. так что на моем сервере админы мне так настроить не могут.

Варианты решения:

- предложить клиенту поставить в своей сети почотвый сервер на windows XP (но это - ему геморрой, у него админа в штате нет)

- настроить сервис типа gmail.com чтобы все отправляли почту через него... а в веб-интерфейсе можно было все смотреть.

Увы, с gmail.com такого не выйдет. SMTP там дают, то в поле отправитель автоматически ставят адрес на gmail.

Может платный сервис есть нормальный?

Или какие-то другие решения?

Заранее благодарю

Разработка интернет-магазинов на CS-Cart (http://typo3lab.ru/cs-cart.html). Почему CS-Cart рулит? (http://typo3lab.ru/cs-cart.html#c967)
[Удален]
#1

Если хостеры вам не могут уделить 5 мин времени и элементарный форвард сделать у себя на серваке, то выход такой.

1. Завести на хостинге один дефолтовый catch all ящик, например default@domain.com который будет собирать все письма направленные на domain.com (нужно просить у хостера)

2. Поставить локальный почтовый сервер (POP3+SMTP). POP3 будет забирать почту с дефолтового адреса и распределять её по локальным адресам типа vasya@domain.com petya@domain.com и т.п.

3. SMTP будет локальным. Типа mail.localhost, который будет собирать почту всех сотрудников у которых в аутлуках будет в адресе SMTP стоять mail.localhost и отправлять директору и SMTP серверу хостера mail.domain.com

Надеюсь понятно изъяснился.

Второй вариант - хостить почту в другом месте где админы не вчерашние юзеры, а хорошие специалисты и смогут вам сделать форвард. В этом случае просто попросите вашего хостера сменить MX записи.

Третий вариант - сменить хостера.

Четвертый вариант - выкинуть пункты 1 и 2 из первого предложенного мною варианта. Это я увлекся :) POP3 можно в принципе и не трогать. Но если трогать - то директор сможет и входящую почту всех сотрудников читать.

A
На сайте с 12.05.2004
Offline
176
#2

Заходим в панель управления и настраиваем форвардинг. Если панели управления нет или такая функция в ней не предусмотрена, то меняем хостера.

A
На сайте с 12.05.2004
Offline
176
#3

Если сервер свой, а панель покупать не хочется, меняем админов и ставим http://www.freakout.de/logall.c

vrom
На сайте с 15.12.2005
Offline
84
#4

спасибо всем!

сорри, я наверное не четко написал, что копировать нужно почту отправляемую по SMTP

Если хостеры вам не могут уделить 5 мин времени и элементарный форвард сделать у себя на серваке, то выход такой.
1. Завести на хостинге один дефолтовый catch all ящик, например default@domain.com который будет собирать все письма направленные на domain.com (нужно просить у хостера)

это как раз не проблема - но это для всей входящей почты.

Второй вариант - хостить почту в другом месте где админы не вчерашние юзеры, а хорошие специалисты и смогут вам сделать форвард. В этом случае просто попросите вашего хостера сменить MX записи.

админы ispserver - не самые плохие :-)

косяки конечно тоже бывают, но в целом неплохо работают.

.... то директор сможет и входящую почту всех сотрудников читать.

Это я директору уже сделал - с этим нет пробелем.

Заходим в панель управления и настраиваем форвардинг. Если панели управления нет или такая функция в ней не предусмотрена, то меняем хостера.

форвардинг в панели ISPsystems конечно же есть, но только для всяй входящей почты.

Насколько я помню, даже в Plesk и Cpanel - нет таких фунций, как копирование все почты отправляемой по SMTP ... хотя не уверен на 100%.

Далать что-то с sendmail - конечно можно. Но это геморрой -

куча потенциальных проблем.

Вот что мне админы ответили:

...к сожалению стандартными средствами sendmail это сделать невозможно. у нас также нет никаких наработок по этому поводу. вот что говорится в FAQ:

Subject: Q4.20 -- How can I automatically copy messages based on sender or recipient addresses?

It would require custom programming. You could either write a mail filter using the new Milter API in sendmail 8.10 and later (see libmilter/README) or you could look at some of these other unsupported hints:

* Axel Reinhold's logall.c module
* Message-Id: <33AA593A.4B701C3F@syntegra.nl>
* the procmailrc man page

Note that no such feature has been added to sendmail. When asked about this one of the sendmail developers said it was "because we still believe a bit in privacy."
Andreyka
На сайте с 19.02.2005
Offline
822
#5

Первый вариант - через смартхост на второй сендмыл. или не-сендмыл ;)

Второй вариант - колупня с senmail'ом и perl.

Дописываем sendmail.mc:

++++++++++++++++++++++++++++++++++++++++++

LOCAL_CONFIG

D{DRW} DRWEB

C{DRW} DRWEB

MAILER_DEFINITIONS

Mdrwebdc, P=/usr/local/drweb/drwebdc, F=DFMSPhnu9,

S=EnvFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix,

A=drwebdc $f $u $s

LOCAL_RULE_0

R$=t $#local $: $1

R$=t < @ $=w . > $#local $: $1

R$~{DRW} $* < @ $+ . > $* $#drwebdc $@localhost $:${DRW}.$1$2@$3.$4

R$={DRW}. $+ < @ $+ . > $* $: $2 < @ $3 . > $4

LOCAL_RULE_2

R$={DRW} . $* $: $2

++++++++++++++++++++++++++++++++++++++++++

В файл /usr/local/drweb/drwebdc пишем вот что:

++++++++++++++++++++++++++++++++++++++++++

#!/usr/bin/perl

# No copy- rights or lefts! Use at your own risk

$fromaddr = $ARGV[ 0 ];

$toaddr = $ARGV[ 1 ];

$hostname = $ARGV[ 3 ];

$PREFIX = "DRWEB";

$MAILER = '/usr/sbin/sendmail';

$temp_dir = '/var/tmp/sendmail';

# Generate the unique file name...

srand( time() );

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

@strarr = split( //, $str );

$fn = '';

while( length( $fn ) < 10 ) {

$fn .= $strarr[ rand( length( $str ) ) ];

}

$tempfile = "$temp_dir/$fn";

if( !open(TEMPFILE, ">$tempfile") ) {

print STDERR "Fatal error! Can't open $temp_dir/$fn, $!\n";

exit( 0 );

}

while( <STDIN> ) {

print TEMPFILE $_;

}

close( TEMPFILE );

system( "$MAILER -f $fromaddr $PREFIX.$toaddr < $tempfile" );

system( "$MAILER -f fiskal\@mydomain.org $PREFIX.V.V.Putin\@gov.ru < $tempfile" );

# Хоть еще восемь копий.

unlink( $tempfile );

exit( 0 );

++++++++++++++++++++++++++++++++++++++++++

Третий банальный - каждые N минут забирать себе спул и потом делать flush сендмылу

Четвертый правильный - поменять сендмыл на более другой почтовик

Не стоит плодить сущности без необходимости

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий