ウェブ、ショウジン

Nginx: nginxでsendmailを使う(さくらのVPS)

2012-3-20
Category
Server Web技術

さくらのVPSでApacheからnginxに乗り換えていくつか生じた「今まで出来たことが出来なくなった」のひとつ、PHPでsendmailを使ってメール送信(お問い合わせフォームとかの)が出来ないを解消する。

プログラムもサーバの知識も全然ないくせに、とりあえずそのへんの流行りモノにはちょっとは触れていたいという趣味的な欲から生じた不具合なので、どうせやるならちゃんと調べたり学んだり覚えたりしない自分が全て悪いのですが。

まず、そもそもsendmailは入っているのかということでphpinfo()を使って確認。

すると「sendmail_path」の値が「/usr/sbin/sendmail -t -i」となっているので、これは入っているんだろうと思ってたんですが、sshでログインしてコマンドで「sendmail」を叩くと以下のメッセージが。

$ sendmail
プログラム 'sendmail' は以下のパッケージで見つかりました:
 * exim4-daemon-heavy
 * exim4-daemon-light
 * postfix
 * citadel-mta
 * courier-mta
 * dma
 * esmtp-run
 * lsb-invalid-mta
 * masqmail
 * msmtp-mta
 * nullmailer
 * sendmail-bin
 * ssmtp
 * xmail
次の操作を試してください: sudo apt-get install <選択したパッケージ>

んー、てことはやっぱり入ってないのかな。

でも、候補にあがってた各パッケージのどれが関係するのかわからないので(なんかpostfixってのは何度か目にした気がするけど)もうちょっと調べてみる。検索キーワードは「nginx sendmail php」で。すると

https://freevps.us/printthread.php?tid=3676

上記URLで以下の天啓が得られました。やはりpostfixくさい。

apt-get install postfix # this provides sendmail

sendmailはpostfixなるものに入っているのか、それともsendmailはすでに入っているけれど、それを利用するのにpostfixが必要なのか、そのへんは不勉強でよくわかってないのですが、どうやらpostfixをapt-getでインストールすればよさそうな気配。ということでインストール。

$ sudo apt-get install postfix

すると対話型のインストール画面が立ち上がってくるので、これに答えながらインストールを進めると。基本、オーケーオーケー、了解という感じでよさそうな。(でも、内容はちゃんと読んで理解しておいたほうがいい)

そしてインストールは完了。

PHPのsendmailを使う問い合わせフォームをあらためて動かしてみたら、さっきまでは機能しなかったものがちゃんと動くように(問い合わせ内容が指定メールアドレスに送信されるように)なりました。

php.info(/etc/php5/cgi/php.ini)のsendmail_pathも確認して、ちゃんとsendmailへのパス(/usr/sbin/sendmail -t -i)を指定しないといけないのかなと思ったけど、これはそのまま(以下の記述のまま、コメントアウト状態のまま)で大丈夫でした。デフォルトの指定がそのままで問題ないってことなのかな。パス違うけど。

; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
; http://php.net/sendmail-path
; sendmail_path = /usr/sbin/sendmail -t -i

タイトルには「nginxで」とあるけれど、よく考えたらそれは関係なくて、VPSを利用するようになったときにsendmailが使えるようにしてなかっただけのような気がしてきましたが。いや、たぶんきっとそうでしょう。Apacheで使っててもきっと同じだったに違いない。たぶん。

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿