使用/不使用Perl模块将文本文件作为perl中的附件发送电子邮件

时间:2014-07-11 05:58:18

标签: perl email

我的远程Linux机器上有一个文本文件。我想通过电子邮件发送此文件。有没有简单的方法来编写代码。我们可以不使用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'
             );


            $msg->attach(Type         => 'text',
         Data         => $message
        );


         $msg->attach(Type        => 'image/gif',
         Path        => '/tmp/logo.gif',
         Filename    => 'logo.gif',
         Disposition => 'attachment'
        );       
          $msg->send;

这里附件是gif文件.Is" From"强制性的???但是我如何添加文本文件。我没有使用Perl模块找不到解决方案

2 个答案:

答案 0 :(得分:1)

它必须是perl吗?否则,一个非常简单的方法是使用Mutt,它预先安装在许多Linux发行版上。

$ mutt -s "Subject" -c "copy@mail.com" -a /tmp/attachedfile.txt "recipient@mail.com" < body.txt

如果它是更大的perl脚本的一部分,你仍然可以进行系统调用以从脚本中执行mutt。

system("/usr/bin/mutt [...]") or die("Sending email failed: $?");

答案 1 :(得分:0)

许多模块要求您的计算机上有邮件传输代理,例如sendmail。但我没有,所以我使用Mail::Sender。它具有良好的文档,AUTH,支持附件,并报告错误消息。

确保正确设置内容类型和编码。我正在发送XLS文件,因此编码是&#39; base64&#39;。

当然,您还需要一个SMTP服务器帐户。