• ベストアンサー

自宅サーバでお金をかけずにmail機能

こんにちは。私は今度卒論で、オークションサイトを作ろうとしているものです。 無償のサンプルソースを見つけたのでそれをいじってますが、知識がほとんどないので困っています。中間発表を目の前にして、自分のPCにsendmail機能がないことに気がつき、大慌てです。 学生なのでお金がないのでPerlモジュールでなんとかならないかと、ppmでやってみたのですが、Mail:SenderもMail:SendmailもNet:SMTPも入ってないらしいのです。 質問が重複して申し訳ないのですが、誰か解決策を教えてください! ちなみにApache2、perl5.8.7、windowsXPです。 よろしくお願いします。

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.9

> cgiプログラムからメールを送信するためには、SMTPサーバという、メールを送信するためのサーバをたてる(?)必要があるのですね。で、そのSMTPサーバには、sendmailやらxmailやらといった種類があるのですよね。 そのとおりです。 大学のSMTPサーバーを使わせてもらえるなら自分で用意する必要はありませんが、「それも勉強だ」と言われてしまえばそれまでですね。 > Net:SMTPとは、そのサーバにメールを転送するために必要なモジュールっていう事なんですかね。 プログラミングが絡んで難しく考えてしまいがちですが、Net::SMTPなんて要はOutlook ExpressやBecky!などのメールソフトと同じSMTPクライアントです。 メールソフトでもアカウント設定などでSMTPサーバー名を入力する項目ありますよね。 $smtp = Net::SMTP->new('localhost'); でサーバー名をセットしていることになります。 > myPCにメールサーバをたてられるなら、xmailなどのフリーソフトでメールサーバをたてて、ソースをそのフリーソフトにメールを送信するように書き直して、って感じでいいのですか? SMTPサーバーをたてた後にテストのため、Net::SMTPではなく一度メールソフトからちゃんとメールの送信ができるか確認することを勧めます。 http://www.atmarkit.co.jp/fnetwork/rensai/tcp03/01.html

yuihhi
質問者

お礼

回答ありがとうございます。かなり御礼が遅れてしまいましたね(>_<) せっかく教えていただいたのに、他の事でもつまづいているので、結局何も進みません。すみません。 でも、ありがとうございました。またぶつかったら質問するので、その時にまた回答していただけたらなと思います!

その他の回答 (8)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.8

貼ったURLが古かったですね。 今のActivePerlは標準でNet::SMTPが入っているので、libnetのインストールは不要です。 前述のURLはNet::SMTPを使うためのサンプルソースの意味で貼りました。 Net::SMTPを使っても、別途SMTPサーバーを用意する必要はありますがそのあたりは大丈夫でしょうか? 絶対にできないことはないですが、無駄に面倒になります。 SMTPサーバーはWinXP ProならIISをインストールすることで一緒にインストールできますし、#2,6さんが書かれているようにXMailや大学のサーバーを借用するのも手です。 前回紹介したRadishは、最新版は多機能になっていますが、ver2.2.8は機能を絞った簡易なものですので卒論に使うにはちょっと、という感じがします。 XMailやRadish以外にもいくつか類似のソフトはあるので検証してみてはいかがでしょう。 http://wago.nobody.jp/mail/app/

yuihhi
質問者

補足

すみません、全く理解していなかったようです(^^;) つまり、cgiプログラムからメールを送信するためには、SMTPサーバという、メールを送信するためのサーバをたてる(?)必要があるのですね。で、そのSMTPサーバには、sendmailやらxmailやらといった種類があるのですよね。Net:SMTPとは、そのサーバにメールを転送するために必要なモジュールっていう事なんですかね。 実は今オークションサイトを構築していて、ある企業が提供しているフリーのサンプルソースをいじっています。その中で、管理者がユーザーに送る場面があって、そのソースにsendmailでメールを送信している記述がありました。 myPCにメールサーバをたてられるなら、xmailなどのフリーソフトでメールサーバをたてて、ソースをそのフリーソフトにメールを送信するように書き直して、って感じでいいのですか? 今の時期にこんな質問してて本当に卒業も危ういんですけど、恥を忍んであえて伺いました。もし間違っているようでしたら、またご指摘をいだだけたらなと思います。よろしくお願いします。

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.7

ActivePerlをインストールしてみました。バージョンは同じ5.8.7です。 Net::SMTPが入っていないらしいということでしたが、ファイルを確認したところ、ちゃんとlib\Net\SMTP.pmがありました。 HTTPサーバーをたてるのが面倒だったので、直接ローカルで実行しただけですが、メールの送信もできました。 参考にしたソースは下記URLの1.2です。(3行目を$smtp = Net::SMTP->new('localhost');に変更) http://homepage3.nifty.com/hippo2000/perltips/perlmail.htm 使用したサーバーソフトはRadish ver2.2.8ですが、メールの送信自体はSMTPの基づいて行われているようなので、SMTPにさえ対応していれば、どのようなサーバーでもいいはずです。

yuihhi
質問者

お礼

回答ありがとうございます。 本当ですか?!私の確認ミスだったようですね(>_<)すみません、お騒がせしている皆様・・・ 参考にさせていただきます。。

yuihhi
質問者

補足

すみません。 コマンドプロンプトでlibnetっていうのをインストールしたのですが、それでOKなんでしょうか??

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.6

#1 です。 やはり。メールサーバーをWindowsで動作させるのは大変な様な気がします。仮にサーバーが建ったとしても、Perlからコントールできるかどうか。。。と言う気がします。 方法論は2つある様な気がします。 1つは、卒業研究と言う事ですので、大学のメールサーバーを拝借する事はできませんか? 例えば、Socketモジュールを使って大学のメールサーバーに接続して、SMTPサーバーへ直接メールを投げてしまえば良い様な気がします。 もっと、お手軽にSMTPサーバーをコントールできるモジュールもあるはずです。 大学側に交渉する必要はありますが、お金も係らないし、現在の開発環境をそのまま利用する事が可能です。 もう1つは、現在ご利用のPCにLinuxを積むことです。#3さんが言われている様に、マルチブートにしてしまえば良いと思います。 開発自体を、Windows上で行うのではなく、Linux上で行ってしまった方が良いでしょう。ツール類やPerlのモジュール類もActivePerlなどより確実に動作しますし。 Linux環境であれば、ほぼ0円でなんでもできる(能力があれば。ですが。)と言うメリットがあります。 個人的には、Linux上で行った方が良い様な。。。と思いますし。卒業研究のテーマにそぐっていれば。ですけど。(一般には、Linux環境下で研究を進めた方が楽だし、yuihhiさんの勉強にもなると思いますし。) SoketでSMTPサーバーに接続する事例を紹介したページを示しておきます。 http://www.site-cooler.com/kwl/perl/smtp.htm

参考URL:
http://www.site-cooler.com/kwl/perl/smtp.htm
yuihhi
質問者

お礼

再び回答ありがとうございます。 そうですよね~勉強するという意味ではlinuxのほうがいいとは思うんですけど、何分時間が押しているもので。。。 でも参考にさせていただきます!

  • parapa
  • ベストアンサー率15% (42/273)
回答No.5

まずWinodwsが動作環境な時点であれな気がしますね。 まずパーミッションの設定が関係ない。 それとファイルロック機能が使えない。 これだけでも致命的に思いますね。 いっそうのことWindowsでつくるCGIと切り替えて C++あたりでCGIを作りメール送信機能を自作または 元からあるDLLを利用したりして作るとか

yuihhi
質問者

お礼

回答ありがとうございます。 初心者なのでよくわかりませんが、出来る友達でもC++でつまづいていたので、私には到底無理かと(^^;)時間もないので・・・ でもありがとうございました。

回答No.4

まず、URL先の上部メニューのDocumentation部分をクリックすると、説明ページが開きます。 その中で、ダウンロードページを開く部分をクリック ダウンロードするのは XMailとXMailcfgの2つ。 いずれもWindowsバイナリファイルです。サイトは任意のところをクリックします(本家でも、チェコでも、ドイツでも・・・)。 すると、ダウンロードダイアログボックスが現れますので 任意のディレクトリを選んでOKをクリックします。 設定や、インストールはDocumentationを一通り見てくださいね。

yuihhi
質問者

お礼

再び回答ありがとうございます。 今ちょっと他にやらなきゃいけないことがあってstopしてるのですが、明日からまた再開するので、やってみますね♪ またアドバイスよろしくお願いします!

回答No.3

捕捉です。 No.1のかたも仰っていますが、 WindowsXPよりも、LinuxやFreeBSDなどのサーバーの方が、最初からPerlやメールサーバー機能が入っているので、お勧めです。(設定は必要ですが・・・) Apacheは別途インストールしないといけませんが、無料で手に入ります。 もし、PCが無いのなら、Partition MAGICなどのマルチブート設定、起動ソフトを導入するという手があります。

yuihhi
質問者

お礼

回答ありがとうございます。 重複してしまいますが、やっぱりパソコンをあと1台というのは厳しいです(><)それで、あなたがおっしゃっているマルチブートや起動ソフトというものについて、少し教えていただけないでしょうか? また、先程の回答にあったxmailのリンク拝見しましたが、xmailの意味やダウンロードの方法なども教えていただけないでしょうか? 本当に無知で初心者なので、「おいおい」と思われているかもしれませんが、どうぞよろしくお願いします!!

回答No.2

xmailがあります

参考URL:
http://xmailserver.jp/
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

先ずは、メールサーバーを立てないとどうにも成りませんね。 一般には、qmailをインストールし、そのリッパーとしてSendmailを利用する。と言うのが一般的かな。と言う気がします。 ただし、両方Windowsでは動作しません。(多分。) もし、空いているPCがあればLinuxをインストールすれば、qmailもsendmailも無料で利用できます。(両方、インストールはかなり難しいですが、ネット上にノウハウはたくさん落ちています。) Windowsで動作するメールサーバーもありますが、qmail互換かどうかは微妙ですね。特に、Mail::sendmailなどのモジュール越しに利用する事はできないと思います。 (そもそも、qmailとsendmailが動いていれば、sendmailをopenし、リダイレクトすればメールは送れますから、Mail::sendmailなどを利用する必要も無いのかも知れません。ただし、sendmailはとても重いので、大量にメールを送る場合には適していません。その場合SMTPサーバー(qmail)を直接ドライブした方が良いです。) とりあえず、Windows上でメールサーバーを立てるのか、Linuxマシンを確保するのか選択してみて下さい。 その上で次のステップへ進めば良いでしょう。

yuihhi
質問者

お礼

回答ありがとうございます。 質問のところでも書いたのですが、お金もないことですしあと1台linuxマシンを確保する事は困難だと思われます(^^;) とりあえずwindows上でメールサーバを立てることを考えます。

関連するQ&A