【问题标题】:Perl & MIME::Lite - Why are my .txt attachments blank?Perl & MIME::Lite - 为什么我的 .txt 附件是空白的?
【发布时间】:2011-06-25 19:12:31
【问题描述】:

我使用MIME::Lite 已经有一段时间了,到目前为止还没有遇到任何问题。

我正在尝试附加一个.txt 文件,但该文件(发送后)里面没有内容。

我知道该文件中有一些内容,因为我正在同一个脚本中创建.txt 文件。我知道文件在哪里并且可以看到它的内容,但是当我告诉MIME::Lite 附加.txt 文件时,电子邮件只包含文件名并且只有64 个字节。

这是我脚本中MIME::Lite 部分的代码:

$msg = new MIME::Lite(From => $from,To => $to,Subject => $subject,Data => "Data",Type => "multipart/mixed",); 
$msg->attach(Type => 'TEXT', Data => @message);
$msg->attach(Type => 'TEXT', Path => $stat_file);
$msg->send();

在哪里$stat_file = /in/some/dir/cheese/txt/somefile.txt

除第 3 行外,一切正常。它正确地找到并附加了我指向的文件,但是当它到达我的电子邮件时,它是一个 64 字节的空白 .txt 文件。

我已经尝试了这段代码前 3 行中每一行的几种变体,但不知道我缺少什么。

有人知道这个脚本会按照说明执行的原因吗?

【问题讨论】:

  • @cjm - 我认为指向我使用的版本会更相关,不是吗?
  • 否,因为最终该版本将从 CPAN 中删除,链接将中断。也不清楚您是否实际使用该版本(它更有可能只是您创建链接时的最新版本)。如果您认为模块的版本可能很重要,请在问题中明确提及;不要指望人们会查看您的链接的 URL。
  • @cjm - 你应该编写一个基于迷你 SO API 的脚本来编辑不正确的 CPAN 链接。如果它在 Perl 中,则加倍加分 :)
  • @DVK,AFAIK API 目前是只读的。所以脚本可以找到链接,但无法修复它们。

标签: perl file mime text-files email-attachments


【解决方案1】:

您说您正在程序中创建$stat_file 指向的文件,对吗?也许您还没有关闭该文件的文件句柄,并且它可能没有被刷新到磁盘?

【讨论】:

  • 听起来差不多……我得找到那个语法,但我认为你是对的
  • 这是我永远不会忘记再次做的事情之一哈哈
  • :-) 以前被我咬过。现在,每当我完全知道我已经完成了对文件的写入时,我都会关闭它而不是等待文件句柄超出范围。
  • 我曾经遵守关闭文件法,但因为我从来没有看到保持打开它的任何不利影响......直到今天,当然
猜你喜欢
  • 2013-04-28
  • 2016-01-04
  • 2011-12-11
  • 1970-01-01
  • 2018-01-16
  • 2017-07-06
  • 2015-08-18
  • 2011-04-12
  • 2015-09-25
相关资源
最近更新 更多