Ali Onur Cinar
Articles

SMTP Wrapper for Mutt E-Mail Client

Installation:

  1. Download the mutt-smtp-wrapper.pl
  2. Change its mode to executable (chmod 755 mutt-smtp-wrapper.pl)
  3. Add the following line into your ~/.muttrc file:

set sendmail=/usr/bin/mutt-smtp-wrapper.pl

mutt-smtp-wrapper.pl:

#!/usr/bin/perl
#
# @(#)mutt-smtp-wrapper.pl1.2 05/05/01
#
# Copyright (c) 2004
#      Ali Onur Cinar &060;cinar(a)zdo.com&062;
#
# License:
#
#   Permission  to  use,  copy, modify, and  distribute  this software and its
#   documentation  for  non-commercial use and  without  fee is hereby granted
#   provided  that the  above  copyright notice appear  in all copies and that 
#   both  the  copyright  notice  and  this  permission  notice  and  warranty
#   disclaimer  appear  in  supporting  documentation,  and  that  the name of
#   Ali Onur Cinar  not  be  used  in  advertising  or publicity pertaining to
#   distribution of the software without specific, written prior permission.
#
#
# Usage:
#
#   Please update the following parameters according to targeted SMTP server:
#
#   Put the name of your SMTP server
#
$server = "mail.domain.name";
#
#   Put the address that will be used while sending trough this SMTP server
#   (you can still put whatever email you prefere in your From: line)
#
$from   = "user\@domain.name";
#
#   Turn the debugging on/off (0=off, 1=on)
#
$debug  = 0;
#
#   SASL Authentication (if required)
#
#$username = "";
#$password = "";
#

use Net::SMTP;                                        # use Net::SMTP

shift @ARGV;                                          # check for recipient
if ($#ARGV < 0)                                       # email addresses
{
  print STDERR 
   "No recipient email provided in arguments.\n";
  exit 1;
}

$smtp = Net::SMTP->new($server, Debug => $debug);     # create SMTP connection

if (!$smtp)                                           # make sure that the
{                                                     # connection attempt
  print STDERR                                        # was successfull.
   "Cannot connect to $server.\n";
  exit 1;
}

if (defined($username) && defined($password))         # authenticate
{
  $smtp->auth($username, $password);
}

$smtp->mail($from);                                   # set the sender

foreach $to (@ARGV)                                   # add each recipient
{                                                     # to the list
  $smtp->to($to);
}

$smtp->data();                                        # start sending the
                                                      # message body
$smtp->datasend(                                      # some advertisement
  "Received: from Mutt by mutt-smtp-wrapper.pl 1.2 "
 ." (www.zdo.com/articles/mutt-smtp-wrapper.shtml)\n"
);

while (<STDIN>)                                       # send each line of
{                                                     # message body
  last if m/^\.$/g;
  $smtp->datasend($_);
}

$smtp->dataend();                                     # terminate the
$smtp->quit;                                          # process

_END_

Your Comments


12/31/69 17:00

Name:
Comment:

Valid XHTML 1.0! Valid CSS! FuseBox Inside This is my Google PageRank. - SmE Rank free service Powered by Scriptme

This page was last updated on Sun January 21 2007 06:55:05 PM