Sending mail with Perl mail script

Q. How can I send an email with perl?

A. With the help of sendmail you can send an email from your web based feedback form. You will need to indicate the path to the mail program, Sendmail. Usually the path to Sendmail is /usr/sbin/sendmail. Here is sample script that can send an email to your account or to end user. Make sure you setup

Advertisement

$to=’MAIL ADDRESS TO SEND TO’;
$from= ‘EMAIL@MYOMAIN.COM’;
$subject=’YOUR SUBJECT’;

Here is sample script to sending an email using perl [ Download script ]:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
 
$title='Perl Mail demo';
$to='MAIL ADDRESS TO SEND TO';
$from= 'webmaster@YOURDOMAIN.COM';
$subject='YOUR SUBJECT';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
## Mail Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
## Mail Body
print MAIL "This is a test message from Cyberciti.biz! You can write your
mail body text here\n";
 
close(MAIL);
 
print "<html><head><title>$title</title></head>\n<body>\n\n";
 
## HTML content sent, let use know we sent an email
print "<h1>$title</h1><p>A message has been sent from $from to $to</p></body></html>";

Upload script Upload script to your web hosting cgi-bin directory. Then test is by typing url. For example http://mydomain.com/cgi-bin/sendmail.pl.

Caution: Notice that the subject line in the above script ends with two \n (new line) characters. These characters are required to separate the email header from the email body with a blank line. Do not remove them.

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

26 comments… add one
  • vani Oct 9, 2012 @ 11:13

    how to open a mail(as some user) in server using perl?

  • user Mar 28, 2014 @ 17:23

    You’re not understanding what sendmail is. sendmail is an MTA, like postfix, yes, but due to legacy naming conventions, sendmail is also the binary that’s used for delivering mail on most systems even if it’s not the same sendmail as the sendmail MTA. You can use Exim or Postfix or others and still the binary will be called sendmail.

  • VIN Feb 3, 2016 @ 7:29

    Thanks for the script. Anyway, from your code, how can i save the message of the email into a .txt file as an attachment to send together with the email?

    • Kartik Parihar Mar 28, 2016 @ 8:06

      Use perl MIME::Lite module.
      By using ->attach function you could send text file as a attachment

  • Nani Jul 21, 2016 @ 15:01

    Can anyone tell me…how to deactivate the hyperlink in sent email after 10days using perl script.

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.