No.1395 Re[12]:Cygwinで外部にメールを送信するには? |
発言者: hi-6 発言日: 2003 08/15 17:54 |
nilさん了解しました。詳しく知らなかったけど、 想像以上にいろいろと問題があるようですね。 ところで、このスレッドのテーマはメールの送信ですが、 シェルではなく、perlでスクリプトを組むというのは いかがでしょうか? ホームページ上のフォームからのメール送信は以前簡単な ものを作ったことがあるのですが、シェルの方が簡単に 済むので、たまにそれを使っていました。しかし、いずれにせよ たびたびファイルから読み込むというのは面倒ですね。 CGIを使うのも危なそうな気もするし。 時間があれば、コマンドラインで送信できるperlスクリプト を作ってみたいと考えていたのですが。 Ctl+dのシグナルで本文の送信が完了するようなものを イメージしたことがあります。 cygwinでも大丈夫なのかな? 自分としてはcygwinでのperlの利用は専ら練習や実験のみです。 練習用のディレクトリを作って。リナックスのサーバの方では 掲示板など置いてありますが、まだ勉強中であまり大したことは できず、広く公開できる代物ではありません。セキュリティも 恐いので。 必要があれば、perlの利用を考えてみるのもいかがでしょうか? こんな感じで、これも今のところ問題無く動いていますが、 いかがなものでしょうか? なお、環境はあくまでリナックスです。参考にだけして下さい。 ______________________________________________________ #!/usr/bin/perl require '../lib/cgi-lib.pl'; require '../lib/jcode.pl'; &ReadParse(*in); $name = "$in{'name'}"; $subject = "$in{'subject'}"; $address = "$in{'address'}"; $body = "$in{'body'}"; $to = 'mail@hi-6.xxx.jp'; $mailName = jcode::jis($name); $mailSubject = jcode::jis($subject); $mailBody = jcode::jis($body); $from = "差出人"; $from = jcode::jis($from); open(MAIL, "| /usr/lib/sendmail -t"); print MAIL "To: $to\n"; print MAIL "Subject: $mailSubject\n"; print MAIL "Content-type: text/plain;\n\n"; print MAIL "$from : $mailName\n"; print MAIL "you-mail: $address\n"; print MAIL "you make TEXT:\n\n"; print MAIL "$mailBody\n"; close(MAIL); #$body =~ s/\n\n/\n/g; #$body =~ s/[\r\n,\n]/<br \/>/g; $body =~ s/\r\n/<br>/g; $body =~ s/\r/<br>/g; $body =~ s/\n/<br>/g; print "Content-type: text/html\n\n"; 各種書籍などさんこうにしました。jcode.plは 有名ですし、ホームページで検索すれば簡単に 入手できると思います。テキストをパスで指定 する場所に置くだけで使えたように思います。 気をつけるのはパーミッションだけ、これもあちこち調べれば たくさん情報があると思います。 |