• ベストアンサー

cgi 実行時のエラー

perl初心者でまた質問させていただきます。「送信」ボタンをクリックすると、HPで入力してもらった情報をメールで送信するcgiを作成しました。ただ、実行すると、 Can't locate object method "new" via package "Net::SMTP" (perhaps you forgot to load "Net::SMTP"?) at C:\www\cgi-bin\downloadmail.cgi line 62. というエラーが出ます。 cgiは、 my $smtp = Net::SMTP->new($192.1.1.1); $smtp->mail($email); $smtp->to($to); $smtp->data(); $smtp->datasend("From:$email\n"); $smtp->datasend("To:***@***.co.jp\n"); $smtp->datasend("Subject:テストメール\n"); #件名 $smtp->datasend("Content-Type: text/plain; charset=iso-2022-jp\n\n"); $smtp->datasend("テストメール\n"); $smtp->dataend(); $smtp->quit; というものです。どなたか分かりましたらお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

Net::SMTPモジュールのロードを指示する use Net::SMTP; は書いてある? 1行目の #!/usr/bin/perl の下あたりに use Jcode; って書いてあると思うので、そこを use Net::SMTP; use Jcode; にしましょう。

pa-man2go
質問者

補足

ご回答ありがとうございました。 use Net::SMTP;を付け加えたところさっきのエラーは出なくなりました。ただ次に、 Can't call method "mail" on an undefined value at C:\www\cgi-bin\downloadmail.cgi line 64. のエラーが出てしまいました。"mail"も何か宣言してあげなければならないのでしょうか?何度も申し訳ありませんがよろしくお願いします。

その他の回答 (1)

回答No.1

>Can't locate object method "new" via package "Net::SMTP" (perhaps you forgot to load "Net::SMTP"?) at C:\www\cgi-bin\downloadmail.cgi line 62. Net::SMTPがないですよってことです。 このモジュールいれないと動きません・・最低でも・・ http://search.cpan.org/~gbarr/libnet-1.19/Net/SMTP.pm

参考URL:
http://search.cpan.org/~gbarr/libnet-1.19/Net/SMTP.pm