• ベストアンサー

サーバー内のテキストデータを拾って、メール送信するスクリプト

こんにちは、変動する表の作成スクリプトでは、callhiroさん、danyさんに多大なるご協力をいただきありがとうございました。 それで、また別件ですが、サーバー内にあるテキストファイルを読み取ってメール送信する方法をしりたいのですが、今回から質問を細切れにして、ひとつ解決したら締め切ることにいたします。

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

  • ベストアンサー
  • syg
  • ベストアンサー率54% (6/11)
回答No.3

参考URLなんかいいんじゃないかと。 sendmail使うなら &jcode::convert(\$sub,'jis'); &jcode::convert(\$msg,'jis'); if( open( MAIL,"| $sendmail $mailto -t")) { print MAIL "X-Mailer: $mailer\n"; print MAIL $etc if $etc; print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $sub\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-type: text/plain\n\n"; print MAIL "$msg\n"; close( MAIL ); }else{ return "!!ERROR!!"; } とか。ちなみに $text = <IN>; だと最初の一行しか読まないので $text = join( '',<IN> ); にするといいです。 jcodeについてはこのへんが。必見です。 http://www.mikeneko.ne.jp/~lab/kcode/jcode.html

参考URL:
http://member.nifty.ne.jp/hippo2000/perltips/perlmail.htm
hooma
質問者

お礼

ありがとうございました。 この質問に関しては、よくわかりました。 どうやら、CGIだけでは自動的にメールを送信できないみたいですね。 また、何かありましたらお願いいたします。

その他の回答 (3)

  • callhiro
  • ベストアンサー率35% (54/152)
回答No.4

どうもこんにちは。 今回の質問ですが、みなさんの教えてくださってる方法で良いかと思います。 アドバイスですが、 CGIの本を参考にするのも当然良いですが やりたいことを実現しているフリーのスクリプトを分析したり、 複数の優良なCGIスクリプトをうまく組み合わせて オリジナルのものを作ると言うことも有効だと思いますので、 是非参考にしてください。 ではでは。

  • cocky
  • ベストアンサー率57% (232/402)
回答No.2

一つ補足。 「print OUT <<EOM;」のところは文末にセミコロン付け忘れてたので、もし動かす際は付けといて下さい。

  • cocky
  • ベストアンサー率57% (232/402)
回答No.1

sendmailが使えるサーバであれば、単純にテキストファイルをメール送信するだけなら、対象となるファイルを適当な変数に読み込んで、ヘッダ付けてsendmailに流し込めば済むと思いますが。 メールヘッダの書式についてはRFC822を読まれた方がいいでしょう。(メール題名にASCII以外の文字を使うんならRFC2047も必要) 試しに書くとすればこんな感じですかねぇ。(エラートラップ等は省略してます) open( IN, "< [ファイル名]" ); $text = <IN>; close( IN ); open( OUT, "| /usr/sbin/sendmail" ); print OUT <<EOM From: [発信元のアドレス] To: [宛先] Subject: [題名] $text . EOM close( OUT );

hooma
質問者

補足

素朴な疑問ですが、お答えいただいたスクリプトはどういうきっかけで、作動しますか。 また、時間指定をして予約送信するにはどうしたらいいでしょうか。

関連するQ&A