最近、ドメイン取得してVPSとかAWSでウェブサービスを運用することが多いです。
サービス運用のためにメールの送受信が必要になることがあるのですが、メールサーバの構築・運用は結構面倒くさかったりします。セキュリティやらなにやら気にしないといけないし、落ちると面倒だし。GoogleAppsでも独自ドメイン運用できますが、そこまでやる必要はないし。。と結構メールサーバの運用は面倒です。
で、今回は別の外部のメールサーバを利用することにしました。今回利用したのは、さくらインターネットのさくらのメールボックスです。このさくらのメールボックスを使って、独自ドメインでメールサーバを運用、サービスからもメールが送信できるようにしてみます。
■特徴
以下の様な特徴があると思います。スタートアップのウェブシステムであれば、メールサーバ構築するより、1000円弱払ってさくらインターネットで運用しまったほうが、いろいろ安心だと思います。
・独自ドメインでメールを利用することができる
・gmailなど他のメールアドレスにメールを転送できる。10GBの容量しかないですが、転送してしまえば問題無いです。
・SMTP−AUTHが利用可能。他のVPSなどに乗っているシステム等からメール送信ができる
・やすい(一括 1年で1,029円、月額86円で運用できる)
・セキュリティ対策されている。迷惑メールフィルタやウイルスチェックができる。
■独自ドメインの設定方法
さくらインターネットへの契約は完了するものとします。今回は、お名前.comでドメインを取得しています。さくらインターネットでドメインをとっている方は、別の方法になります。
1.さくらインターネットの管理画面からドメインを追加する。
まず、さくらインターネットの管理画面にログインし、左側の【ドメイン設定】をクリック、その後【新しいドメインの追加】をクリックします。
今回ドメインはお名前.comで取得しているので、【5. 他社で取得したドメインを移管せずに使う・属性型JPドメインを使う(さくら管理も含む)】から、【ドメインの追加へ進む】をクリックします。
今回追加するドメインを入力して、送信するを押します。登録を完了させます。
一旦、さくらインターネット側のドメイン設定は完了です。
2.さくらインターネットの管理画面からメールアドレスを追加&転送先設定
さくらインターネットの管理画面から、メールアドレスを追加します。さくらインターネットの管理画面の【メールアドレスの管理】をクリックして、メールアドレスの追加のところに作成するメールアドレスとパスワードを設定して、追加します。
作成したら、転送の設定もしてしまいしょう。【メールアドレスの管理】をクリックして、追加したメールアドレスの【変更ボタン】を押します。
転送先のメールアドレスを追加して、【転送専用にする】のラジオを選択します。ついでに容量を2048MBにすると良いと思います。この容量制限は、環境しだいです。
これで、さくらインターネットのサーバは設定完了です。
3.サーバの情報を確認する
DNSの設定をする前にメールサーバの情報を確認しておきます。左側のメニューの【サーバ情報の表示】を押して、【サーバに関する情報】のリンクを押すと、以下の様な画面になります。
ここで確認しておくのは、【初期ドメイン】と【IPアドレス】の上段のアドレス(IPv4)と下段のアドレス(IPv6)を確認しておいてください。DNSのレコード設定で使います。
4.DNSのレコード設定をする
次にDNSの設定をします。以下の2つのレコードを設定します。
■MXレコード
名前 空っぽのまま
種類 MX
値 【さっき確認した初期ドメイン】
優先度 10
TTL 任意
■SPFレコード
名前 空っぽのまま
種類 TXT
値 v=spf1 +ip4:【さっき確認したIPv4のIPアドレス】 +ip6:【さっき確認したIPv6のIPアドレス】 ~all
TTL 任意
これで、作成したメールアドレスで送信・受信をする準備ができました。他のメールアドレスから送信したり、受信したりしてみてください。
■CakePHPでこのサーバを経由して送信する設定
CakePHPからこのサーバ経由で送信するためのCakePHPの設定です。app/Config/email.phpに以下を記述します。普通のSMTP-AUTHのサーバと同じですね。
// さくらインターネット
public $sakura = array(
'host' => '【初期ドメインのアドレスを設定】', // 初期ドメイン
'port' => 587,
'username' => '【アドレス】@【独自ドメイン】', // ユーザ名
'password' => '【設定したパスワード】', // メールパスワード
'transport' => 'Smtp',
);
使うときは、この記事を参考にしてみてください。CakeEmailのインスタンス作る時の【gmail】の部分を【sakura】にすれば、送信できます。
サービスが大きくなるまでの間は、これでもいいんじゃないかと思いました。セキュリティを自分で構築するの面倒くさいという方、GoogleApps使う程でもないという方はぜひ。