CGI利用時のパスとメール送信について

    ■1.CGI利用時のPerl,Rubyのパス等について

    • perlのパスは、「 #!/usr/local/bin/perl 」です。
    • rubyのパスは、「 #!/usr/local/bin/ruby 」です。
    • CGI等のパーミッションは755辺りがよろしいかと思います。
    • Perl のバージョン: v5.8.x
    • Ruby のバージョン: v1.8.x
    • サーバのデフォルトの文字コード: UTF-8

    ■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.pdf
             perl-mail-form.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
      ◆3.2. rubyからのメール送信について

    rubyでは、net/smtpモジュールが利用できます。日本語については、rubyに標準で実装されているkconvやnkfなどの文字コード変換ライブラリで使用可能となります。
      ◆3.3. phpからのメール送信について

    上記のperlと同様にphpではPEARモジュールを利用して、localhostに対してSMTP接続してメール送信する方法をご利用ください。
    具体的には、Pear::Mail と日本語の場合は、Pear::Mail_mime もrequire_once で指定して実行します。

      (例)pear_mail_sample.pdf