2016年6月12日日曜日

初めてWebサービスを作る人はPostfixを入れると良いかもしれないという話

SeekGeeksを作ってたときにサーバー周りやら言語関係やらわからないことが多くて、その都度調べに調べて解決していったわけなんですが、「今つまづいてたこれをブログ記事にしたら、これから同じようにWebサービス作ろうと思ってた人の役に立つかも!」と思ってコツコツメモをしてました。サービス公開した後でそのメモを見ながら記事を書けば良いじゃん、楽勝じゃん。と。
で、昨日そのメモを見返してみたんですが、まぁ覚えてないっすね。。いや、やるべきことや何を設定したのかはおぼろげながら覚えてるのもあるんですが、「何がわからなくて苦労したのか」や、「どんな設定を間違えて動かなかったのか」みたいな、そのときそのときの気持ちみたいなものがすっぽり抜け落ちてしまってまして。今同じようなこと考えてメモ取ってる人は、日記みたいなものに文章で残しておいた方が良いかもしれません。

早速投稿の本筋から逸れてしまいましたが、そんな苦労した話の中から、今日はメール送信のお話をしようと思ってブログを書いてます。
私が契約したサーバーには元からsendmailというパッケージがインストールされていました。
で、SeekGeeksでは新規ユーザー登録したときや、投稿したプランにギークから応募があったときなんかにメールでお知らせする機能をつけています。
当初は「メール送信なんか簡単っしょ!」と何の根拠もなく気軽に考えていたのですが、これがまぁ動かない。メールがね、飛ばないんですよ。プログラムは正常終了してるのに。コマンドラインで打ってみてもダメ。(だった気がする)

で、これいよいよやばいなって思ったときに、タイトルにもある「Postfix」というパッケージに切り替えたら見事メールが飛ぶようになりました。
具体的なことは下の記事が私には一番わかりやすく、かつすんなり導入できたので、興味のある方はこちらをご参照ください。

Postfixをインストールしてメール送信してみる - 本日も乙

sendmailが悪いとかじゃなくて、sendmailは多機能故に設定が複雑ということらしいです。
そのため、私の技術力では解決できなかった&私が必要としてる要件ではそこまで高機能なメール送信機能は必要無かった、という理由でsendmailは諦め、Postfixにしました。それだけでソースコード変えることもなくメールが飛ばせるようになったので非常に助かりました。

知ってる人からすれば何だそんなこと、って感じかもしれませんが、もしかしたら私のようにsendmailを何とかしようとしてア○ゾンでsendmailの高い本を購入しようとしてる人もいるかもしれない、と思ったのでメモとして残しておきます。

というか、私も課題を全部解決できたわけじゃないんですけどね。。
どういうわけか、現在メールは送信できるけど、送信するたびにApacheのエラーログにメール送信のログが出力されるようになってます。。
これが一体何故なのか、どうしたら解消できるのか…
もしご存知の方がいらっしゃいましたら、ご連絡頂ければ嬉しいです。
あと、ア○ゾンのマーケットプレイスで、中古品1700円で購入したものの全然開いてないsendmailクックブックを1000円くらいで引き取って下さる方もいらっしゃいましたらご連絡下されば幸いです、って書こうとして今Ama○on覗いたら900円で売ってたのでもうなんかがっかりです。。。
それでも買い取ってくれる方がいれば幸甚です。

なんか最終的には古本の売り込みがメインになってしまいましたが、まぁあんまり複雑なメール送信を必要としてない方はPostfixを検討してみてはいかがでしょうか、ということで。

ちなみにSeekGeeksの場合はこの後さらに、メール送信はできたけど何回やっても迷惑メールに振り分けられてしまう、という問題が起きたのですが、その話は次回にしたいと思います。