You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl脚本发送邮件附件hello.txt为空的原因及解决咨询

问题分析与解决

你的代码里有两个关键问题导致附件内容为空,同时存在MIME类型的不规范问题:

1. 附件路径错误(核心原因)

Path => 'C:\Users\Desktop' 只指定了目录,没有指向具体的hello.txt文件,MIME::Lite无法读取到目标文件内容,所以附件显示为空。必须把路径改为完整的文件路径:

Path => 'C:\Users\Desktop\hello.txt',

2. MIME类型不规范

application/text不是标准MIME类型,文本文件应使用text/plain,虽然这不会直接导致内容为空,但会影响邮件客户端对附件类型的正确识别:

Type => 'text/plain',

额外问题:未定义的$cc变量

代码中Cc => $cc的$cc未定义,运行时会抛出警告,建议要么注释掉这一行,要么给$cc赋值(比如$cc = '';)。

修改后的完整代码

#!/usr/bin/perl
use MIME::Lite;
$to = 'abc@gmail.com';
$from = 'abc@gmail.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
# 处理cc变量:赋值为空或注释掉Cc参数
$cc = '';
$msg = MIME::Lite->new(
   From => $from,
   To => $to,
   Cc => $cc,
   Subject => $subject,
   Type => 'multipart/mixed'
);
# 添加文本内容
$msg->attach(
   Type => 'text',
   Data => $message
);
# 添加附件
$msg->attach(
   Type => 'text/plain',
   Path => 'C:\Users\Desktop\hello.txt',
   Filename => 'hello.txt',
   Disposition => 'attachment'
);
$msg->send;
print "Email Sent Successfully\n";

内容的提问来源于stack exchange,提问作者DM 256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:15:56