Zimbra: Definindo o intervalo de envio do aviso de férias (ou fora do escritório)

 

Olá! Quem já criou algum aviso de fora do escritório ou de férias, como muitos preferem chamar, deve ter observado o comportamento do Zimbra não enviar o aviso para toda mensagem recebida do mesmo remetente.

Isso ocorre devido ao comportamento de cache de remetentes para o Zimbra não enviar múltiplas respostas para o mesmo remetente.

Continuar lendo “Zimbra: Definindo o intervalo de envio do aviso de férias (ou fora do escritório)”

Anúncios

Postfix + Autoresponder: Habilitando data de início e termino

Olá ! Essa dica é para quem possui o Postfix integrado com o YAA Autoresponder e o mesmo não está aplicando as datas de início e termino dos filtros.

No arquivo de configurção do YAA (Yet Another Autoresponder), localize o MAPA que está sendo utilizado ($lookup_maps) para modificar a consulta que está sendo efetuada. Neste exemplo está sendo utilizado uma base MYSQL:

$lookup_maps = {
         'my_sql_map' => {
                'driver' => 'SQL',
                'sql_dsn' => 'dbi:mysql:database=mail;host=localhost',
                'sql_username' => "myusername",
                'sql_password' => "mypassword",
                'sql_select' => "select active,message,subject,charset,forward,local_domains
                                from autoresponder_data where address = %m and active='1',
...



Observe que na SQL acima os campos de data de início e termino não estão sendo consultados.
Para aplicar, altere a entrada conforme abaixo:

$lookup_maps = {
         'my_sql_map' => {
                'driver' => 'SQL',
                'sql_dsn' => 'dbi:mysql:database=mail;host=localhost',
                'sql_username' => "myusername",
                'sql_password' => "mypassword",
                'sql_select' => "select active,message,subject,charset,forward,local_domains
                                from autoresponder_data where address = %m and active='1' and
                                tstart <= UNIX_TIMESTAMP() and tfinish >= UNIX_TIMESTAMP()",
....

Postfix: Criando regras condicionais

É muito comum termos que criar regras condicionais em nosso MTA, que serão aplicadas a remetentes, destinatários ou domínios específicos. No Postfix isso pode ser feito através da diretiva smtpd_restriction_classes (http://www.postfix.org/RESTRICTION_CLASS_README.html).

Vamos imaginar o seguinte cenário, uma organização possui dois domínios (vamos assumir que sejam matriz.com.br e filial.com.br) e precisa criar regras para que determinados usuários enviem e-mail somente para os domínio internos ou até mesmo um único domínio interno. Iniciamos a configuração criando essas classes no main.cf:

smtpd_restriction_classes = somente_matriz, somente_filial, somente_interno

somente_matriz = check_recipient_access hash:/etc/postfix/condicionais/somente_matriz, reject

somente_filial = check_recipient_access hash:/etc/postfix/condicionais/somente_filial, reject

somente_interno = check_recipient_access hash:/etc/postfix/condicionais/somente_interno, reject

Portanto, com a diretiva smtpd_restriction_classes criamos as três classes e logo abaixo especificamos cada uma delas, sendo que após a verificação do arquivo, há a rejeição explícita.

Para definir a quem se aplica a regra, precisamos criar um arquivo para efetuar essa consulta, e como estamos criando um controle de destinatário, colocar a consulta em smtpd_recipient_restrictions:

check_sender_access hash:/etc/postfix/condicionais/regras_condicionais

Lembrando que esta regra deve vir em primeiro lugar, pois mesmo se o remetente estiver conectando de um host confiável ou autenticado, o bloqueio deve ser aplicado, por exemplo:

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/condicionais/regras_condicionais,
permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unlisted_recipient,
reject_unverified_recipient,
reject

O arquivo regras_condicionais é escrito da desta forma:

fulano@matriz.com.br                  somente_matriz

beltrano@filial.com.br                  somente_filial

sicrano@matriz.com.br               somente_interno

Neste exemplo, temos três usuários onde estamos aplicando classes diferentes, e outros usuários não estarão em nenhuma.

O arquivo somente_matriz fica da seguinte forma:

matriz.com.br OK

O arquivo somente_filial fica da seguinte forma:

filial.com.br OK

O arquivo somente_interno fica da seguinte forma:

matriz.com.br OK

filial.com.br OK

Portanto, para cada classe definimos o domínio de destino seguindo da diretiva OK, informando ao Postfix que deve ser permitido, e como após a consulta do arquivo definimos um reject o envio para domínios fora da regra será negado.