Странная проблема с Email :: MIME - нельзя использовать строку в качестве ссылки HASH - PullRequest
1 голос
/ 27 февраля 2011

У меня странная проблема с электронной почтой: MIME.У меня есть следующий код, который предназначен для анализа отправленного на него сообщения электронной почты MIME:

my $parsed = Email::MIME->new(<STDIN>);
print $parsed->body;

Когда я запускаю это, либо отправляя в него образец электронного письма MIME, либо устанавливая свой хост на каналновое письмо на него и отправка себе одного, я получаю следующую ошибку в первой строке:

> Can't use string ("Received: from
> servera02.tk2adsm") as a HASH ref
> while "strict refs" in use at
> /usr/lib/perl5/site_perl/5.8.8/Email/Simple.pm
> line 100, <STDIN> line 71.

Строка, показанная в ошибке, зависит от электронного письма, но это всегда вторая строка содержимого электронного письма.(поэтому я действительно не очень уверен, почему он утверждает, что это строка STDIN 71).Я немного погуглил по этому поводу, и это действительно кажется мне уникальным - у кого-нибудь есть идеи?

Я давно не эксперт по Perl, и я никогда не использовал Email:: MIME, так что я надеюсь, что это что-то простое.

Крис

Ответы [ 2 ]

3 голосов
/ 27 февраля 2011

В документации говорится, что new() ожидает, что его аргумент будет сообщением в форме строки. <STDIN> - это массив (поскольку список аргументов находится в контексте списка).

Попробуйте преобразовать сообщение в строку при ее передаче: my $parsed = Email::MIME->new(join('', <STDIN>));

0 голосов
/ 28 февраля 2011

я имею в виду, что вы можете не получить ошибку, если отключите строгие ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...