在第二个空白行perl之后解析base64文本

时间:2017-09-22 11:34:36

标签: perl email

我是perl的新人。我有一个旧脚本,解析电子邮件中的文本,通过Centos Server上的smstools发送短信。我们添加了另一个软件,我们必须使用sms通知西里尔语。 旧软件以格式发送电子邮件:

composer network undeploy

和脚本正确解析和解码BASE64 TEXT。 新软件以格式发送电子邮件:

Headers
Headers
Content-Transfer-Encoding: base64
blank line
BASE64 TEXT

并且脚本无法正确解析BASE64 TEXT。 解析短信文本的功能是:

Headers
Headers
blank line
------=_Part_digits
Header
Content-Transfer-Encoding: base64
blank line
BASE64 TEXT

当我收到一个空行的电子邮件时,此功能运行良好。 但是如果在电子邮件中有两个空白行,BASE64 TEXT正在使用上部标题解析,我收到了错误的结果。如何通过最少的原始代码编辑正确解析BASE64 TEXT的片段?

1 个答案:

答案 0 :(得分:0)

如果您正在阅读STDIN或输入,那么这样的事情怎么样?

while ( <> ) { 
   last if m/^$/; # blank line;
   my ( $header, $value ) = split /:/; 
}


my $mime_content = do { local $/; <> }; #read rest of input. 
#then decode it, etc.