Ashish Gulhati


Mail::Mix - An interface to mixmaster remailers.


  use Mail::Mix;
  my $mixmaster = new Mail::Mix;
  my @remailers = $mixmaster->remailers();
  my $message = new Mail::Internet( ['To:', 
                                     '', 'This is a test'] );
  my @packets = $mixmaster->chain($message, $remailers->[0]->{Name}, 0);
  for (@packets) { $_->send (sendmail) }


This module is a wrapper around Lance Cottrell's Mixmaster program, and facilitates sending mail through mixmaster style remailers from Perl. This module will NOT currently work with Anonymizer Inc's rewrite of mixmaster, and may never do so.


new ()

Creates a new Mail::Mix object.


mixbin ()

Sets or reports the MIXBIN instance variable, which should contain the name of the Mixmaster executable.

mixdir ()

Sets or reports the MIXDIR instance variable, which should contain the name of the Mixmaster data directory.

debug ()

Sets or reports the DEBUG instance variable. If this is set true, the module will produce debugging output on its interaction with the mixmaster program.



Returns a list of Mail::Mix::Remailer objects, which are hash containers with the following attributes:

  Index        => The position of the remailer in the list
  Name         => The remailer's name
  Address      => The remailer's email address
  Fingerprint  => The remailer's key fingerprint
  Version      => Version of Mixmaster on the remailer
  Flags        => Flags 
chain($message, @remailerlist)

Takes a Mail::Internet object and a list of remailer names, passes the message through the mixmaster binary, and returns an array of Mail::Internet objects containing the remailer packets.

Each of the remailer names provided must correspond to the Name attribute of one of the remailer objects returned by the remailers() method.

The special remailer name '0' may be used to specify a random remailer.


  • There is no error checking.


Mail::Mix is Copyright (c) 2000 Ashish Gulhati <>. All Rights Reserved.


Thanks to Barkha for inspiration, laughs and all 'round good times; and to Lance Cottrell, Larry Wall, Richard Stallman and Linus Torvalds for all the great software.


This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


This is free software. If it breaks, you own both parts.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 187:

You forgot a '=back' before '=head1'

Around line 193:

You forgot a '=back' before '=head1'