CGI-BBS > SO−HO > ショッピングバスケット > Net::SMTPを使用してメールを送信したい。続き


カレッヂ
カレッヂ


質問者 赤青  投稿日 11/19(火) 18:44:45
先日は回答ありがとうございました。

サーバー管理者側の説明では...
現在インストールされているNet::SMTPはバージョン".15でBCC機能は無いとのことでした。
新しいバージョンをダウンロードしてcgi-binディレクトリに置くだけでよいとの回答も同時に得ています。

libnetは1.12をダウンロードしました。
一応解凍もしました。

で、質問なのですが...
(1)バージョンはどうやってみるのでしょう。
(2)このバージョンでいいのでしょうか。
(3)SMTP.pmをcgi-bin下に置くだけでいいのでしょうか。他のモジュールは不要ですか?
非常に拙い質問で申し訳ありませんがわかる方がおられましたらよろしくお願い致します。

プロバイダ参照:
サーバのOS:(未選択)
パソコンのOS:(未選択)
エディタ:
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:firsttime

質問者 赤青  [削除]  投稿日 11/19(火) 18:45:34
すみません
Net::SMTPのバージョンは2.15です。
回答者 やまだ  [削除]  投稿日 11/21(木) 00:13:16
versionは、だいたいそのモジュールに記述されているはずです。$id$ マーカや、VERSIONフィールドで
探せると思います。grepしてみてください。
libnet1.12に存在するNet::SMTPは、2.24で、モジュール内にbccの型グロブ、pod用出力欄にbccを使う記述も
あります。使えるはずです。
しかし、すでにNet::SMTPのあるディレクトリをperlのサーチパスに追加されている環境で、再度その
モジュールをロードしてもoverwriteにはならないで、古いものをロードするだけと思います。
なので、libnetを自分用にConfigure && perl -w Makefile.PL、MakefileのPREFIX変更(or Makefile.PLを変更)、
make && make installしてから、スクリプト内で@INCを再定義してから使うようになると思います。

たぶん、ただSMTP.pmだけを持ってきて使うだけではダメなはずです。
質問者 赤青  [削除]  投稿日 11/21(木) 07:30:36
やまだ様、回答ありがとうございました。

仰るとおり、2.24でした。

ご指示頂いている内容は、わたしのスキルでは即実行というわけには行かない気がしています。
(でも、なんとかしなきゃね)
頂いた内容を基に管理者の方にも問い合わせて何とか進めてみます。

無い知恵を絞って『use Net::SMTP 2.24;』と指定しましたが、これだけでServerInternalErrorになってしまいます。

直接、useを使わずに、cgi内に展開してしまうってのは無茶ですか?
もし、できるなら、展開するだけでいいのか、加工が必要なのか教えて頂けたらありがたいです。
アホな質問ならすみません。
回答者 やまだ  [削除]  投稿日 11/22(金) 00:49:43
うまい方法を見つけました。

libnet1.12のNet/SMTP.pmを適当にリネームして、使う方法です。
例えば、Net/SMTP.pmをNet/MySMTP.pmとして、そのファイルのパッケージ名も変更します。(本体の先頭の
package Net::SMTP; をpackage Net::MySMTP; に変更)
そして、使用するスクリプトで、use Net::MySMTP; みたいに使う方法です。
こうすれば、いけます。(実証済み)

cgi-bin/sample.pl(メールを送るスクリプト)
  |
  +---/Net/MySMTP.pm

のように設置しましょう。
質問者 赤青  [削除]  投稿日 11/22(金) 07:24:16
ありがとうございます!
実証済みということで、お手間を取らせてすみません。
何とかなりそうですね。
ホント、ありがとうございました。
頑張ってやってみます。

このページは終了したので返信(回答)は書きこめません

Web裏技