Extendendo o Amavisd New

  • 1,080 views
Uploaded on

Apresentação feita no YAPC::Brasil 2009, falando sobre como é poderoso e simples extender as funcinalidades do Amavisd-New, utilizando a sua linguagem padrão de desenvolvimento: Perl.

Apresentação feita no YAPC::Brasil 2009, falando sobre como é poderoso e simples extender as funcinalidades do Amavisd-New, utilizando a sua linguagem padrão de desenvolvimento: Perl.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,080
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Extendendo o Amavisd-New YAPC::Brasil 2009, Rio de Janeiro, RJ Friday, October 30, 2009
  • 2. Quem? Otávio Fernandes; otaviof@gmail.com / otavio.fernandes@locaweb.com.br http://blog.emresumo.com Líder, São Paulo Perl Mongers; Friday, October 30, 2009
  • 3. Minha História com Perl Final de 2006; Na época, as minhas principais linguagens eram: C, C++ e Shell Script; Estava construindo um appliance de Anti- Spam... logo Amavisd-New; Friday, October 30, 2009
  • 4. Amavisd-New A necessidade de entender como este software funciona, foi o que me levou a estudar e amar o Perl; Perl, não existe melhor linguagem para o tratamento de email; Friday, October 30, 2009
  • 5. O que ele é? Interface entre o MTA e anti-spam/anti- vírus; Mail part decoder/unpacker; Quarentenas (SQL/Local/Forward); Log e Reporting para o SQL; Friday, October 30, 2009
  • 6. Quais as vantagens? MUITAS features; Extensível; Respeita os padrões (SMTP, MIME, DSN, etc); Tolerante a falhas: Verifica o estado de cada operação; Se houver erro, o email permanece com o MTA; Friday, October 30, 2009
  • 7. Performance Não é tão rápido quando se ele fosse escrito em C; Porem, permite escalar; Trabalha com daemons (conforme o setup, você usa mais instâncias); 200ms * N; Friday, October 30, 2009
  • 8. Performance Real: 1938 msgs/min Friday, October 30, 2009
  • 9. Arquitetura do Amavisd / Postfix Friday, October 30, 2009
  • 10. Afinal, como extender? Todos os arquivos de configuração são scripts Perl; include_config_files("/usr/local/etc/ amavis_custom.pm") if ( -e "/usr/local/ etc/.pm" ); package Amavis::Custom; Friday, October 30, 2009
  • 11. Métodos new; checks; before_send; after_send; mail_done; Friday, October 30, 2009
  • 12. Exemplo Friday, October 30, 2009
  • 13. if ($must_exec_action) { do_log( $cll, "CUSTOM: must_exec_action %d", $must_exec_action ); # redirecting to another recipient $r->recip_addr_modified( $mail_rules->{mailRedirectTo} ) if ( $mail_rules->{mailRedirectTo} ); # rejecting mail for sender if ( $mail_rules->{mailReject} =~ /(true|1)/i ) { do_log( $cll, "CUSTOM: reject this mail for '%s'", ( $mail_rules->{description} ) ? $mail_rules->{description} : 'no_description' ); for my $r ( @{ $msginfo->per_recip_data } ) { $r->add_contents_category( CC_BANNED, 0 ) if !$r->bypass_banned_checks; $r->banning_reason_short( ( $mail_rules->{description} ) ? $mail_rules->{description} : 'no_descption' ); $r->banned_parts( ['MAIL'] ); } $msginfo->add_contents_category( CC_BANNED, 0 ); } } Friday, October 30, 2009
  • 14. Testes? TDD; Unit Tests; Testes de Aceitação com Fixtures; Friday, October 30, 2009
  • 15. Perguntas? Friday, October 30, 2009
  • 16. Obrigado :-) Friday, October 30, 2009