CGI 利用時のパスとメール送信について (2015.4.15 更新) ■1.CGI 利用時の Perl,Ruby のパス等について #!/usr/local/bin/perl 」です。 ruby のパスは、 「 #!/usr/local/bin/ruby 」です。 perl のパスは、 「 ※ CGI 等のパーミッションは 755 辺りがよろしいかと思います。 ◎サーバのデフォルトの文字コード: UTF-8 ◎Perl のバージョン: ver-5.18.x ※ 旧式の jcode.pl を使用している場合は、下記のページような修正が必要です。 http://icepotato.cocolog-nifty.com/blog/2014/04/jcodepldefinedh.html ◎Ruby のバージョン: ver-2.1.x (2015 年 5 月 27 日から適用します。それまでは ver-1.9.x です。 ) ※ ver-1.9 のサポートは終了しているため、5 月 27 日(水)早朝の定期保守作業で標準の Ruby ( /usr/local/bin/ruby )を ver-2.1 に変更いたします。 ※ 段階的に更新してゆきますので、4月 22 日の定期保守作業後では /usr/local/bin/ruby を ver-1.9 のままといたします。 ※ 現在 Ruby をお使いの方で、引き続き ver-1.9 を使いたい場合は、次回 5 月 27 日に予定 している定期保守までに Ruby のパスを下記のように変更してください。 /usr/local/bin/ruby から /usr/local/bin/ruby19 に変更する。 ※ ただし、ver-1.9 については、上記の通り当面の間の利用は可能ですが、サポート対象外と させていただきます。 ■2.CGI など Web アプリからのメール送信について ◆2.1. ssmtp の利用について 汎用レンタルサーバでは、これまで CGI 等の Web アプリからのメール送信について、後述の「3. smtp 25 番ポートへの接続」のように、localhost に smtp 接続して行うようお願いして参りました。 現在は、新たに ssmtp というメール転送エージェントを導入して、コマンド実行によるメールの送信 にも対応いたしました。これにより、sendmail コマンドの代わりに ssmtp コマンドを指定すること によって、CGI からメールを送信できるようになりました。CGI 等で指定する ssmtp コマンドのパ スは次のとおりです。 /usr/local/sbin/ssmtp ◎PHP をご利用の場合、 send_mail/sb_send_mail といった関数を利用してのメールの送信も 可能となります。 ◎Drupal や WordPress 等の CMS をご利用の場合、上記の ssmtp コマンドを指定する方法に よってもメール送信が可能となります。 ◎ssmtp についての詳細は、以下の URL をご参照ください。 http://packages.debian.org/stable/mail/ssmtp ◎従来の方法( smtp 25 番ポートに smtp 接続してメールの送信)には影響は無いので、今までの 方法でもそのまま利用できます。ssmtp を利用すると、メールの送信に中間処理を 1 つ余分に挟 むことになります。基本的には smtp 25 番ポートへ接続する方法を引き続き推奨します。 ■3.SMTP 25 番ポートへの接続について ◆3.1. perl からのメール送信について 汎用レンタルサーバでは、メールサーバとして postfix が内部で稼動しておりますが、利用者が直接 アクセスできない仕様になっております。 ◎問い合わせフォームなどからメール送信する場合は、localhost(127.0.0.1)から SMTP(25 番ポート) を呼び出してメール送信してください。 ◎日本語を含むメールを送信する際は、 Net::SMTP で日本語を送信するために Encode を使った例 を紹介します。 (例 1)perl-mail-cgi のサンプル http://www.cc.tsukuba.ac.jp/computer/rental/info/perl-mail-form.pdf http://www.cc.tsukuba.ac.jp/computer/rental/info/perl-mail-cgi.pdf (例 2)メールフォームプロ のご紹介 ※ Mailform Pro(ver2.1.5) 以降で SMTP 接続に対応しています。 (札幌の和田様に感謝) check.cgi ではなぜか「sendmail のパス検出に失敗・・・」と警告が表示されましたが、 config.cgi を編集し、sendmail のパスの指定を無効にして、smtp 接続を有効にすれば よいようです。 ###$config{"sendmail"} = '/usr/sbin/sendmail'; $config{'SMTPserver'} = 'localhost'; ※ 「ERROR CODE5 Javascript が有効ではありません」というエラーが出る場合、 include.cgi のパーミッションを 775 などにしたら解消できました。 ※ 上記の CGI ファイルなどを Windows 端末で編集する際は、文字化け解消のため、 TeraPad などのツールを利用すると便利です。 ◎参考情報 http://www.site-cooler.com/kwl/perl/smtp.htm http://tech.bayashi.net/pdmemo/sendmailbyperl.html http://search.cpan.org/~gbarr/libnet-1.19/Net/SMTP.pm http://tomo.ac/goodstream/perl/tips.html http://pointoht.ti-da.net/e6662550.html http://perl-memo2.seesaa.net/article/117453609.html ◆3.2. ruby からのメール送信について ruby では、net/smtp モジュールが利用できます。日本語については、ruby に標準で実装されている kconv や nkf などの文字コード変換ライブラリで使用可能となります。 ◎参考情報 http://www.ruby-lang.org/ja/man/?cmd=view;name=net%2Fsmtp http://nabeshiki.tumblr.com/post/20004548136/2002-uu-ruby-mail ◆3.3. php からのメール送信について 上記の perl と同様に php では PEAR モジュールを利用して、localhost に対して SMTP 接続してメ ール送信する方法をご利用ください。 具体的には、Pear::Mail と日本語の場合は、Pear::Mail_mime も require_once で指定して実行します。 (例 3)pear_mail のサンプル http://www.cc.tsukuba.ac.jp/computer/rental/info/pear_mail_sample.pdf ■4.安全なウェブサイトの作り方 ウェブフォームなどに入力されたデータに仕込まれたコードやタグを適切にエスケープしないでその まま使用してしまうと、クロスサイト・スクリプティングなどに悪用される危険性があります。 下記のページにある「安全なウェブサイトの作り方」などの情報をご覧ください。 ◎参考情報 独立行政法人 情報処理推進機構 セキュリティセンターのページ https://www.ipa.go.jp/security/vuln/websecurity.html
© Copyright 2024 ExpyDoc