- ベストアンサー
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; というものです。どなたか分かりましたらお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Net::SMTPモジュールのロードを指示する use Net::SMTP; は書いてある? 1行目の #!/usr/bin/perl の下あたりに use Jcode; って書いてあると思うので、そこを use Net::SMTP; use Jcode; にしましょう。
その他の回答 (1)
- 春原 なの(@ymda)
- ベストアンサー率37% (668/1777)
>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
補足
ご回答ありがとうございました。 use Net::SMTP;を付け加えたところさっきのエラーは出なくなりました。ただ次に、 Can't call method "mail" on an undefined value at C:\www\cgi-bin\downloadmail.cgi line 64. のエラーが出てしまいました。"mail"も何か宣言してあげなければならないのでしょうか?何度も申し訳ありませんがよろしくお願いします。