我是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的片段?
答案 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.