Jason,

> I am interested in creating a plugin that works with Amavis. 
> 
> The purpose of the plugin is to replace a large email attachment with a link
> to the file that was originally attached- that way the messages won't be
> bounced from larger providers who support smaller email messages (10MB).
> I realize sending such messages through email is very inefficient, but
> unfortunately many users don't understand this concept.
> 
> I would like to know the injection point where I can "plug in" to Amavis?
> If possible, I would like to run my code after all the other rules have run.
> 
> Any further information would be very much appreciated! 

One possibility would be to hook an external program to do the transformation
on a mail file through the altermime defanging mechanism, and provide a
replacement file, which will then be adopded by amavisd and fed to a MTA.

Another possibility is using a custom hook 'before_send' and let it prepare
a modified complete message on an alternate file, open it, and let amavisd
know about the substitute, something like this (untested):

  my $old_fh = $msginfo->mail_text;
  my $old_file_name = $msginfo->mail_text_fn

  my $new_fh = IO::File->new;
  $new_fh->open($new_file_name,'<')
    or die "Can't open file $new_file_name: $!";
  binmode($new_fh,":bytes")
    or die "Can't cancel :utf8 mode: $!";

  $msginfo->mail_text($new_fh);
  $msginfo->mail_text_fn($new_file_name);

  $old_fh->close
    or die "Can't close old file: $!";
  unlink($old_file_name)
    or die "Can't delete old file $old_file_name: $!";

or alternatively, just modify the existing open temporary file
in-place, keeping its name and filehandle.

  Mark

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/amavis-user 
 Please visit http://www.ijs.si/software/amavisd/ regularly
 For administrativa requests please send email to rainer at openantivirus dot 
org

Reply via email to