電子書籍の厳選無料作品が豊富!

perlでメールを返信するシステムを作成しているのですが
添付ファイルを指定できてかつコメント付でsendmailを使って
メール返信する方法を知っていたら教えてください

A 回答 (5件)

Q. cgiで添付ファイルを指定する。

→cgiで添付ファイルを取得するのは
原理的に不可能なのでしょうか?

可能です。

ブラウザでフォームを表示

ファイルを添付

submit して、サーバへデータをPOST送信

CGIでデータを受け取って、デコード

という一連の流れをひとつひとつクリアしていれば、OKです。


ブラウザからファイルを添付するフォームは、
静的なHTMLファイルだろうが、
CGIによる動的なものであろうが、
どちらにしろ同じHTMLであれば問題ありません。


ですので、ブラウザでフォームを表示したときに、
HTMLのソースを確認して、うまくいく静的なHTML と同じものなのか、
確認してみてください。 - (1)

(2)
データはサーバへPOSTされているかを、確認する。
Firefox のアドオン live http headers を使うと便利です。



フォームをperl によるCGIで表示する
とのことですが、
「ファイルを添付するフォームを表示するCGI」

「ブラウザから受け取ったファイルを処理するCGI」
は、同じプログラムなのでしょうか。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。
(2)データはサーバへPOSTされているかを、確認する。
Firefox のアドオン live http headers を使うと便利です。

「ブラウザから受け取ったファイルを処理するCGI」に
以下のように記述すると問題なく表示されます。
use CGI qw(:standard);
require 'D:\inetpub\cgi-bin\exec\jcode.pl';
print "Content-type:text/html\n\n";
my(@query) = param();
foreach (@query) {
$val = param($_);
&jcode'convert(*val, 'sjis');
$buf{$_} = $val;
print "buf{$_}=$buf{$_}<br>\n\n";
}



フォームをperl によるCGIで表示する
とのことですが、
「ファイルを添付するフォームを表示するCGI」

「ブラウザから受け取ったファイルを処理するCGI」
は、同じプログラムなのでしょうか。

違うプログラムです。

以上です

お礼日時:2007/12/11 09:12

参考URL の方法ではいかがでしょうか。


CGI.pmがバージョン2.47以上という前提ですが。

参考URL:http://www.ss.iij4u.or.jp/~somali/web/_perl_uplo …
    • good
    • 0
この回答へのお礼

ご教授ありがとうございます。参考にしたいと思います。

お礼日時:2007/12/13 09:57

sendmail コマンドを使わない方法なら


Mail::Senderモジュールだと簡単だと思います。

日本語の和訳のドキュメントがないけと、多少Mailについて
の知識があれば大丈夫でしょう。

参考URL:http://search.cpan.org/~jenda/Mail-Sender-0.8.13 …
    • good
    • 0

CPAN モジュールをインストール可能なら、(Windowsならppmで)


MIME::Lite というモジュールを使うと便利です。

参考URL(perlfaq9 の邦訳)の下の方に、

How do I use MIME to make an attachment to a mail message?
(メールメッセージに添付するためにどうやって MIME を使えばいいですか?)

という説明があります。

参考URL:http://perldoc.jp/docs/perl/5.6.1/perlfaq9.pod

この回答への補足

※補足
フォームに
<form name="mailtome" method="post" action="/cgi-bin/mailex.cgi" ENCTYPE="multipart/form-data">
<input type=file name=upload_file size=XX>
<input type="submit" name="Submit" value="送信">

と記述し、/cgi-bin/mailex.cgi には
use CGI qw/:all/;
$file = param('upload_file');
として実行すると$fileとして取得できます。

しかし、フォームではなくperlで
print '<form name="mailtome" method="post" action="/cgi-bin/mailex.cgi" ENCTYPE="multipart/form-data">'."\n";
print '<input type=file name=upload_file size=XX>'."\n";
print '<input type="submit" name="Submit" value="送信">'."\n";

とし、以下のようにすると$fileが取得できません。
use CGI qw/:all/;
$file = param('upload_file');

cgiで添付ファイルを指定する。→cgiで添付ファイルを取得するのは
原理的に不可能なのでしょうか?ご教授願います。

補足日時:2007/12/10 09:09
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます、よく調べて考えてみます。

お礼日時:2007/12/09 20:43

メールで添付ファイルがどのような方法でくっついているのかまず知る必要が有るんじゃないかな?



http://www.google.co.jp/search?hl=ja&lr=lang_ja& …
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます、まずはインターネットでのメールの
仕組みを理解するようにしたいと思います。

お礼日時:2007/12/08 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!