Server IP : 104.21.38.3 / Your IP : 172.70.208.157 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/libmailtools-perl/examples/ |
Upload File : |
#!/usr/bin/perl -w # Note by Mark Overmeer: # This script does work, but Mail::Send may provide a nicer interface # NAME # mail-mailer.pl - Smtp client written in Perl # # SYNOPSIS # mail-mailer.pl -s "Test" --smtp=my-smtp-server.com [email protected] # # INTRODUCTION # This script can be an alternative to the 'mail' Unix command when # sending e-mails. # It reads the mail body from the standard input. # If your system is Windows, use the '--smtp' option to send your # e-mails. # This script works in Linux, Unix and Windows environments. # # OPTIONS # -f From # -s Subject # -c Cc-address # -b bcc-address # --sendmail Use sendmail to send the e-mail # --qmail Use qmail-inject to send the e-mail # --smtp=HOSTNAME Use HOSTNAME as the SMTP server. # --help Prints the help info and exits # # EXAMPLES # cat mailbody.txt | mail-mailer.pl -f [email protected] -s "Hy dude" --sendmail [email protected] # # AUTHOR # Bruno Negrao G Zica <[email protected]> # # COPYRIGHT # Copyright (c) 2004 Bruno Negrao G Zica. All rights reserved. # This program is free software; you can redistribute it and/or modify # it under the same terms as Perl itself. # # LAST MODIFIED # 01/12/2004 ################################################################## use Mail::Mailer; use Getopt::Long; use strict; # hash that'll receive the arguments and options my %opt; GetOptions ( \%opt, 'help', 'f=s', 's=s', 'c=s', 'b=s', 'sendmail', 'qmail', 'smtp=s' ); if ($opt{help}) { help(); exit 0; } $opt{to} = $ARGV[$#ARGV]; # the "To" address is the last argument die "Error: You didn't specify a destination e-mail address.\n" unless ( $opt{to} || $opt{c} || $opt{b} ); # Defining the method to send the message my $mailer; # Mail::Mailer object if ($opt{sendmail}) { $mailer = new Mail::Mailer 'sendmail'; } elsif ($opt{qmail}) { $mailer = new Mail::Mailer 'qmail'; } elsif ($opt{smtp}) { $mailer = new Mail::Mailer 'smtp', Server => $opt{smtp}; } else { die "Error: you didn't specify the delivery method. ". "Possible methods are:\n'--qmail', '--sendmail', and ". "--smtp=HOSTNAME\n"; } # Setting the headers my %headers; # hash with the e-mail headers $headers{To} = $opt{to}; $headers{From} = $opt{f} if defined $opt{f}; $headers{Cc} = $opt{c} if defined $opt{c}; $headers{Bcc} = $opt{b} if defined $opt{b}; $headers{Subject} = $opt{s} if defined $opt{s}; $mailer->open(\%headers); # Reading and feeding the e-mail body while (<STDIN>) { last if ( $_ =~ /^\.$/ ); print $mailer $_; } # Finishing $mailer->close(); # Subroutines sub help { print ' Example 1: Entering the e-mail body by hand: mail-mailer.pl -s "Hy buddy" --qmail [email protected] [ ENTER YOU MESSAGE BODY ] [ A SINGLE . (dot sign) ALONE IN ONE LINE TO SAY ] [ YOU FINISHED YOUR E-MAIL ] . Example 2: Using the output of another program as the body: dir c:\ | perl mail-mailer.pl -f [email protected] -s "My c:\" [email protected] --smtp=server1.mydom.com OPTIONS -f addr From address. -s TEXT Subject. -c addr Cc-address. -b addr bcc-address. --sendmail Use sendmail to send the e-mail. --qmail Use qmail-inject to send the e-mail. --smtp HOSTNAME Use HOSTNAME as the SMTP server. --help Prints this help text. '; }