The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Mail::Send - Simple electronic mail interface


  require Mail::Send;

  $msg = Mail::Send->new;
  $msg = Mail::Send->new(Subject => 'example', To => 'timbo');

  $msg->to('user@host', '');
  $msg->subject('example subject');

  $msg->set($header, @values);
  $msg->add($header, @values);

  # Launch mailer and set headers. The filehandle returned
  # by open() is an instance of the Mail::Mailer class.
  # Arguments to the open() method are passed to the Mail::Mailer
  # constructor.

  $fh = $msg->open;   # some default mailer
  $fh = $msg->open('sendmail'); # explicit
  print $fh "Body of message";
  $fh->close          # complete the message and send it
      or die "couldn't send whole message: $!\n";


Mail::Send creates e-mail messages without using the Mail::Header knowledge, which means that all escaping and folding must be done by you! Also: do not forget to escape leading dots. Simplicity has its price.

When you have time, take a look at Mail::Transport which is part of the MailBox suite.




A list of header fields (provided as key-value PAIRS) can be used to initialize the object, limited to the few provided as method: to, subject, cc, and bcc. For other header fields, use add().

Header fields

$obj->add($fieldname, @values)

Add values to the list of defined values for the $fieldname.

$obj->set($fieldname, @values)

The @values will replace the old values for the $fieldname. Returned is the LIST of values after modification.




The %options are used to initiate a mailer object via Mail::Mailer::new(). Then Mail::Mailer::open() is called with the knowledge collected in this Mail::Send object.

Be warned: this module implements raw smtp, which means that you have to escape lines which start with a dot, by adding one in front.


This module is part of the MailTools distribution,


The MailTools bundle was developed by Graham Barr. Later, Mark Overmeer took over maintenance without commitment to further development.

Mail::Cap by Gisle Aas <>. Mail::Field::AddrList by Peter Orbaek <>. Mail::Mailer and Mail::Send by Tim Bunce <>. For other contributors see ChangeLog.


Copyrights 1995-2000 Graham Barr <> and 2001-2017 Mark Overmeer <>.

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