RubyでCGIスクリプトを作る下準備・cryptを使う・改
前回(http://d.hatena.ne.jp/BeForU/20040704)のバグフィックス。
checkpwdの引数が空だとエラーになるので対策。(一応nilの時も考慮)
def checkpwd(chk, pwd) # ↓この行だけ追加 return false if chk == nil || chk == "" || pwd == nil || pwd == "" if pwd =~ /^\$[0-9]\$([A-Za-z0-9\.\/]+)\$([A-Za-z0-9\.\/]+)$/ # MD5 salt = $1 else pwd =~ /^([A-Za-z0-9\.\/]{2})/ # MD5以外は一般的なDESとしてみる salt = $1 end if pwd == chk.crypt(salt) return true else return false end end
FreeBSDメモ・crontabの使い方
crontabを使ってコマンドを定期的に実行させる。
- 「crontab -e」でエディタを起動。
- 「/etc/crontab」ファイルも参考にして編集。
- 「crontab -l」で確認。
- 必要無くなったら「crontab -r」で削除。
設定例
- 「15,45 * * * * コマンド」で15分と45分に起動。
- 「30 1-6 * * * コマンド」で1〜6時30分に起動。
備考
- 環境変数が設定されてないのでSHELLやPATHぐらいはセットする。
- メール通知が一切要らないならコマンドの所は「コマンド > /dev/null 2>&1」
Ruby
- オブジェクト指向言語RuayでCGIスクリプト 環境変数を表示するテスト
- RubyでCGIスクリプトを作る下準備・日時を求める
- RubyでCGIスクリプトを作る下準備・フォームデータを受け取る
- RubyでCGIスクリプトを作る下準備・フォームデータを受け取る・改
- RubyでCGIスクリプトを作る下準備・訪問者の環境変数を取得
- RubyでCGIスクリプトを作る下準備・GDライブラリをインストール
- RubyでCGIスクリプトを作る下準備・訪問者の環境変数を取得・一部訂正
- RubyでCGIスクリプトを作る下準備・アクセスカウンターもどきのCGI
- Ruby/GDライブラリのメモ
- RubyでCGIスクリプトを作る下準備・ファイルの読み書き
- RubyでCGIスクリプトを作る下準備・cryptを使う
- RubyでCGIスクリプトを作る下準備・Rubyからsendmailを使う
- RubyでCGIスクリプトを作る下準備・URLを自動リンクする正規表現
- RubyでCGIスクリプトを作る下準備・Rubyからsendmailを使う・改1
- RubyでCGIスクリプトを作る下準備・cryptを使う・改
備忘録・目次
備忘録・目次
RubyでCGIスクリプトを作る下準備・Rubyからsendmailを使う・改1
前回 http://d.hatena.ne.jp/BeForU/20040705 の改造。
SubjectをBase64でエンコードしてみるVersion。
FreeBSD + Ruby1.8.1 だとencode64でバグがある。→ http://www.daifukuya.com/kagemai/guest.rbx?project=kagemai&action=view_report&id=210
encode64→Base64.encode64にしたら動いた。他のOSは知らない。
#!/usr/local/bin/ruby # # Rubyからsendmailを使うデモ # SENDMAIL = "/usr/libexec/sendmail/sendmail" # sendmailのパス def sendmail sm_from, sm_to, sm_cc, sm_bcc, sm_sub, sm_com require "kconv" require "base64" sm_sub = sm_sub.tojis sm_sub = Base64.encode64(sm_sub) sm_sub.chomp! sm_sub = "=?ISO-2022-JP?B?#{sm_sub}?=" sm_com = sm_com.tojis IO.popen("#{SENDMAIL} -t", "r+") { |io| io.print "From: #{sm_from}\n" io.print "To: #{sm_to}\n" io.print "Cc: #{sm_cc}\n" if sm_cc != nil io.print "Bcc: #{sm_bcc}\n" if sm_bcc != nil io.print "Subject: #{sm_sub}\n" io.print "MIME-Version: 1.0\n" io.print "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" io.print "Content-Transfer-Encoding: 7bit\n" io.print "\n" io.print "#{sm_com}\n" } end # from@hoge:差出人、to@hoge:宛先 sendmail("from@hoge", "to@hoge", nil, nil, "テストメール", "テスト")