`

使用perl发送邮件

 
阅读更多

 

 最近有需要使用脚本发送邮件的需求,故整理了下资料,写了个send_mail的脚本。如下:

 

  • 脚本 mail.pl

 

 #!/usr/bin/perl

use Net::SMTP_auth;
#use strict;
use MIME::Base64;
use Encode;
use Encode qw(from_to);

####################################################
#发送邮件
#使用“cpan Net::SMTP_auth” 安装perl发送邮件需要的模块
#@param mailto 收件人
#@param subject 邮件主题
#@param msgFile (可选) 默认为/tmp/mailservice.out 调用之前先把待发送内容填充到 msgFile 
#脚本会自动获取文件里面的内容当内容发送。
#@author:  bimo
#@date:2013-08-09
####################################################

if(!@ARGV[0])   { 
        print "usage:","\n","mail.pl <mailto> <subject> [msg_contentfile]   \n";
        exit 0;
} 
if(!@ARGV[1])   { 
        print "usage:","\n","mail.pl <mailto> <subject> [msg_contentfile]   \n";
        exit 0;
} 
if(!@ARGV[2])   { 
        $msgFile="/tmp/mailservice.out";
}else{
        $msgFile=@ARGV[2];
}

        my $mail_content=`cat $msgFile`;
    my $to_address  = $ARGV[0];
    my $subject = $ARGV[1];;
    my $mail_user   = 'xxx@xx.com';
    my $mail_pwd    = '*****';
    my $mail_server = 'mail.xxx.com';

    my $from    = "$mail_user";

        print "run mail.pl to_address:",$to_address,"msg_contentfile:",$msgFile,"\n";

    my $smtp = Net::SMTP->new($mail_server);

    $smtp->auth($mail_user, $mail_pwd) || die "Auth Error! $!";
    $smtp->mail($mail_user);
    $smtp->to($to_address);

    $smtp->data();             # begin the data
    $smtp->datasend("To: $to_address\n");
        $smtp->datasend("Subject:=?utf-8?B?".encode_base64($subject,'')."?=\n\n");
        $smtp->datasend($mail_content);      # set content
    $smtp->dataend();   # end the data

    $smtp->quit();


#my $misc=`cat /dev/null > $msgFile` ;
#print "clean file:$msgFile, 's content result  $misc \n";

 

 

  • 执行测试 mail.pl

 

/usr/bin/perl mail.pl abc@qq.com 测试perl邮件发送 /tmp/mailservice.out

 
 

分享到:
评论

相关推荐

    perl自动发邮件

    在提供的压缩包文件"Perl_mail"中,可能包含了一个或多个示例脚本,这些脚本演示了如何使用Perl发送邮件。通常,这些脚本会导入必要的邮件模块,定义邮件内容(包括收件人、主题、正文和附件),然后通过SMTP服务器...

    perl发送邮件

    首先,我们来看看标题提到的"perl发送邮件"这一功能。 Perl发送邮件主要依赖于`Net::SMTP`模块,这是一个标准的Perl模块,用于通过简单邮件传输协议(SMTP)发送邮件。以下是一个简单的Perl脚本示例,展示了如何...

    Perl发送邮件脚本

    一个perl发送邮件的脚本: 功能: mailto.pl -s Subject -t To -f file-content -h Format-HTML -s 指定主题 -t 指定接收人,多人以,分隔 -f 邮件内容,发之前放在文件中 -h 以HTML格式发送,缺省以文本方式发送 ...

    perl 写的发邮件smtp

    下面将详细介绍如何使用Perl编写SMTP邮件发送脚本。 首先,你需要一个Perl模块来处理SMTP通信。最常用的模块是`Net::SMTP`,它包含在Perl的标准库中,因此无需额外安装。这个模块提供了与SMTP服务器交互的接口,...

    Perl的Email 发送程序与插件

    Perl是一种强大的脚本编程语言,尤其在处理文本和系统管理任务方面表现卓越。在IT领域,Perl被广泛用于创建各种实用程序,其中之一就是发送电子...通过学习和实践,你可以掌握使用Perl发送邮件的技能,提高工作效率。

    利用perl给多人发送邮件

    本主题将深入探讨如何在Unix环境下利用Perl编写脚本来实现给多人发送邮件的功能。 首先,我们要理解Perl中的邮件发送机制。在Unix系统中,Perl可以通过内置的`Mail::Sender`模块或者第三方的`Email::Sender`模块来...

    perl smtp发送邮件

    perl smtp 发送邮件 自动发送邮件

    perl发送html邮件

    利用perl脚本发送邮件的时候,有时候需要使用html格式,此脚本就是利用perl发送html邮件的一个例子

    perl读取excel内容,并发送html邮件!中文不乱码

    perl读取excel内容,并发送html邮件!中文不乱码,直接下载可用,只需要改一下文件路径,这是已经上生产的脚本

    perl-Mail-Sendmail

    在perl中使用本机的sendmail发送邮件的代码如下: #!/usr/bin/perl use strict; my($r_mail) = 'xxxx@163.com'; my($s_mail) = 'root@abc.cn'; my($subject) = '邮件标题'; open(MAIL, '|/usr/lib/sendmail -t'); ...

    使用Perl编写CGI时需要注意的几个问题

    下面是一个使用Socket模块发送邮件的Perl子程序示例: ```perl sub smtpmail { my ($recipient, $from, $realname, $subject, $mailbody) = @_; my ($a, $name, $aliases, $proto, $type, $len, $thataddr, $...

    使用Perl实现系统管理自动化(第二版)

    - **邮件发送与接收**: 使用Perl可以方便地发送和接收电子邮件,常见的邮件模块包括Email::Sender、Mail::Box等。这些模块支持多种传输协议,如SMTP、IMAP等。 - **垃圾邮件过滤**: Perl还支持开发复杂的垃圾邮件...

    sendEmail一个用perl写的邮件客户端

    "sendEmail" 是一个基于Perl编写的轻量级邮件客户端程序,它允许用户通过命令行接口发送电子邮件。这个工具对于开发者来说非常方便,因为它不需要复杂的图形界面,而是通过简单的命令参数就能完成邮件的发送。 ...

    局域网发送匿名邮件的perl脚本

    配置一下 ip地址 my $ADDR=pack('SnC4x8',$PF_INET,$port,192,168,60,10); 和要发送的邮件地址 就可以发送匿名邮件

    Ezmlm邮件列表管理程序的Perl接口模块

    在成功安装Ezmlm的Perl接口模块后,我们就可以在Perl脚本中使用它来执行各种操作,如创建新的邮件列表、管理订阅者、发送公告等。例如,创建新邮件列表的代码可能如下: ```perl use Ezmlm; my $ezmlm = Ezmlm-&gt;...

    神奇的perl两本perl入门教材合集

    2. **网络编程**:介绍如何使用Perl进行HTTP、FTP等协议的通信,以及邮件发送、套接字编程等。 3. **数据库交互**:讲解如何使用DBI模块进行数据库操作,连接MySQL、Oracle等数据库。 4. **正则表达式进阶**:深入...

    使用命令行发送带附件的邮件

    `Blat`是一个小型的免费软件,而`SendEmail`是一个Perl脚本,两者都能处理邮件发送任务。 1. **安装Blat**: 下载并安装Blat,确保将其安装目录添加到系统环境变量`PATH`中,这样可以在任何位置调用`blat`命令。 2....

    mailslurp-client-perl:用于MailSlurp的Perl电子邮件API。 使用Perl创建测试电子邮件帐户并发送和接收电子邮件

    使用`send_email`方法,你可以从创建的邮箱地址发送邮件: ```perl my $send_email_options = { to_emails =&gt; ['recipient@example.com'], subject =&gt; 'Test Email', body =&gt; 'This is a test email from ...

    perl 邮件处理send_mail

    在unix自己的目录下自动记录emailaddress。自动发送标题邮件#######

Global site tag (gtag.js) - Google Analytics