Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags


How to send an email in Perl

Dian Us Suqlain

In this shot, we’ll learn how to write a program in Perl to send an email from one id to another.

There are several ways to send an email from different Operating Systems using Perl.

Linux/Unix OS

If you are working on a Linux/Unix PC, there is a sendmail utility in a Perl app through which you can easily send an email to the recipient.

Windows and other OS

Unlike Linux/Unix, there is no utility such as sendmail in Windows through which we can send an email. As an alternative, the Perl module MIME:Lite can be used for client-side email writing. This module can be locally installed on the machine.

send mail process in perl


Example 01 - Plaintext

Below is a basic syntax for sending an email through Perl:

$to = '';
$from = '';
$subject = 'Sending Plaintext with Perl';
$message = 'Test program to send email through Perl!';

open(MAIL, "|/usr/sbin/sendmail -t");

print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";

print MAIL $message;

$result = close(MAIL);
if($result) {
  print "Email sending success!\n"; }

else {  
  print "Email sending failed!\n"; }
Sending an email with Perl


To ensure that the email is sent successfully, the email server needs to be configured correctly on the host machine’s operating system.

Example 02 - HTML message

Below is another example of sending an email through the Perl program:

$to = '';
$from = '';
$subject = 'Sending HTML message with Perl';
$message = '<h1>Hello Sir!</h1> 
            <p>How are you doing?</p> 
            <p>Hope you received my gifts and letters!</p>
            <p>Do respond to this email.</p>
            <p>Thank you!</p>';

open(MAIL, "|/usr/sbin/sendmail -t");

print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";

print MAIL "Content-type: text/html\n\n";

print MAIL $message;

print "Email sent successfully!\n";


If we observe closely, the only significant difference between sending a Plaintext and HTML message is the Content-type: text/html\n.

This Content-type specifies that this is an HTML message mail, and the message includes an HTML syntax.

Since HTML has various tags such as: <p>, <h1> to <h6>, <img>, etc. We can include these tags in our HTML message and send attachments with them like images, links/urls, documents.




Dian Us Suqlain
Copyright ©2022 Educative, Inc. All rights reserved

View all Courses

Keep Exploring