- 締切済み
NET::POP3の代用できるスクリプト
レンタルサーバ上でSSHをじっこうし NET::POP3が使えるかどうか調べたところ ( perl -MNET::POP3 -e 'print $NET::POP3::VERSION' ) インストールされていないことが分かりました レンタルサーバなので、勝手にインストールすることもできないので NET::POP3を代用できるスクリプトがあればよいのですがそのようなスクリプトはありますか?またPOP3.pmを自分のディレクトリにおくだけで動かすようにするにはどのようにすればよいのでしょうか。 よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- omni2
- ベストアンサー率53% (33/62)
ブラウザで実行されてるんでしょうか? print "Content-type=text/html\n\n"; これは、 print "Content-type: text/html \n\n"; ではないでしょうか? とりあえずここがあやしいような・・
- 11th_style
- ベストアンサー率50% (45/90)
連続ですみません、書き忘れです。 > perl -MNET::POP3 -e 'print $NET::POP3::VERSION' perlのモジュールは大文字と小文字を識別しますので、このコマンドでは確認できません。以下ではどうでしょう? perl -MNet::POP3 -e 'print "1?n"' libnetは確か標準のモジュールなので、恐らくインストールされているのではないかと・・・。
- 11th_style
- ベストアンサー率50% (45/90)
> What machines support libnet ? > > libnet itself is an entirely perl-code distribution so it should > work on any machine that perl runs on. Net::POP3(libnet)のドキュメントにはこうありますので、コピーするだけで動く気がします。 参考URLからソースを落とし、Net/以下を丸ごとアップして見て下さい。一発で動くかどうかは運次第ですが。 [ディレクトリ構成例] XXXX.cgi Net/Cmd.pm Net/Config.pm ... (以下略) Net/Ftp/A.pm ... (以下略)
補足
回答ありがとうございます。 どうやらNet::POP3がはいっているそうです。(2.27) http://digit.que.ne.jp/work/index.cgi?Perl%A5%E1%A5%E2%2FPerl%A4%C7%A5%E1%A1%BC%A5%EB%A4%F2%BC%F5%A4%B1%A4%EB を参考にして #!/usr/bin/perl use Net::POP3; print "Content-type=text/html\n\n"; my $server = ''; my $account = ''; my $password = ''; my $protocol = ''; my $output = ''; &main($server, $account, $password, $protocol, $output); sub main { my ($server, $account, $password, $protocol, $output) = @_; mkdir($output, 0777) unless (-d $output); my $pop3 = Net::POP3->new($server) or die; my $login = (lc($protocol) eq 'apop') ? 'apop' : 'login'; my $count = $pop3->$login($account, $password); my $messages = $pop3->list(); foreach $id (sort (keys %{$messages})) { my $message = $pop3->get($id); my $outfile = sprintf('%s/%d_%s.eml', $output, $$, $id); if (open(OUT, ">$outfile")) { print OUT @{$message}; close OUT; } #$pop3->delete($id); } $pop3->quit; } print "OK"; exit; というスクリプトを実行させました。ローカルではできますが、サーバにアップするとできません。 500 Internal Server Error がでます。原因は何が考えられるでしょうか