发送电子邮件(Sending Email)
使用sendmail实用程序
发送简单消息
如果您正在使用Linux/Unix机器,那么您只需在Perl程序中使用sendmail实用程序即可发送电子邮件。 这是一个示例脚本,可以将电子邮件发送到给定的电子邮件ID。 只需确保sendmail实用程序的给定路径是正确的。 对于Linux/Unix机器,这可能有所不同。
#!/usr/bin/perl
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
open(MAIL, "|/usr/sbin/sendmail -t");
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;
close(MAIL);
print "Email Sent Successfully\n";
实际上,上面的脚本是一个客户端电子邮件脚本,它将起草电子邮件并提交给在Linux/Unix机器上本地运行的服务器。 此脚本不负责将电子邮件发送到实际目的地。 因此,您必须确保在计算机上正确配置并运行电子邮件服务器,以便将电子邮件发送到给定的电子邮件ID。
发送HTML消息
如果您想使用sendmail发送HTML格式的电子邮件,那么您只需在电子邮件的标题部分添加Content-type: text/html\n ,如下所示 -
#!/usr/bin/perl
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
open(MAIL, "|/usr/sbin/sendmail -t");
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Content-type: text/html\n";
# Email Body
print MAIL $message;
close(MAIL);
print "Email Sent Successfully\n";
使用MIME :: Lite模块
如果您正在使用Windows机器,那么您将无法访问sendmail实用程序。 但您可以使用MIME:Lite perl模块编写自己的电子邮件客户端。 您可以从MIME-Lite-3.01.tar.gz下载此模块,并将其安装在Windows或Linux/Unix机器上。 要安装它,请按照简单的步骤 -
$tar xvfz MIME-Lite-3.01.tar.gz
$cd MIME-Lite-3.01
$perl Makefile.PL
$make
$make install
就是这样,您将在您的计算机上安装MIME :: Lite模块。 现在,您已准备好使用下面介绍的简单脚本发送电子邮件。
发送简单消息
现在,以下是一个脚本,它将负责发送电子邮件给定的电子邮件ID -
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
print "Email Sent Successfully\n";
发送HTML消息
如果您想使用sendmail发送HTML格式的电子邮件,那么您只需在电子邮件的标题部分添加Content-type: text/html\n 。 以下是脚本,它将负责发送HTML格式的电子邮件 -
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->attr("content-type" => "text/html");
$msg->send;
print "Email Sent Successfully\n";
发送附件
如果您要发送附件,则以下脚本可用于此目的 -
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
$msg = MIME::Lite-=>new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Type => 'multipart/mixed'
);
# Add your text message.
$msg->attach(Type => 'text',
Data => $message
);
# Specify your file as attachement.
$msg->attach(Type => 'image/gif',
Path => '/tmp/logo.gif',
Filename => 'logo.gif',
Disposition => 'attachment'
);
$msg->send;
print "Email Sent Successfully\n";
您可以使用attach()方法在电子邮件中附加任意数量的文件。
使用SMTP服务器
如果您的计算机未运行电子邮件服务器,则可以使用远程位置提供的任何其他电子邮件服务器。 但是要使用任何其他电子邮件服务器,您需要拥有ID,密码,URL等。一旦获得了所有必需的信息,您只需要在send()方法中提供该信息,如下所示 -
$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );
您可以与您的电子邮件服务器管理员联系以获取上述信息,如果用户ID和密码尚未提供,则您的管理员可以在几分钟内创建它。