<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>cloudrop &#187; Gmail</title>
	<atom:link href="http://cloudrop.jp/tag/gmail/feed" rel="self" type="application/rss+xml" />
	<link>http://cloudrop.jp</link>
	<description>クラウド使ったインターネットサービスの技術支援、ウェブサービスの開発</description>
	<lastBuildDate>Wed, 25 Aug 2010 15:49:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://cloudrop.jp/tag/gmail/feed" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>メールサーバーにGoogle Apps（Gmail）を使う場合に軽く押さえておくポイント</title>
		<link>http://cloudrop.jp/cloud/mail_by_google_apps?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mail_by_google_apps</link>
		<comments>http://cloudrop.jp/cloud/mail_by_google_apps#comments</comments>
		<pubDate>Fri, 25 Sep 2009 09:02:40 +0000</pubDate>
		<dc:creator>sekine</dc:creator>
				<category><![CDATA[クラウド]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://cloudrop.jp/?p=262</guid>
		<description><![CDATA[セキュリティーの問題がクリアできれば、独自ドメインでメールアドレス（サーバー）を運用するのにGoogle Apps（Gmail）を利用しない理由はないと思います。
無料版であるStandard Editionでは

無料 [...]]]></description>
			<content:encoded><![CDATA[<p>セキュリティーの問題がクリアできれば、独自ドメインでメールアドレス（サーバー）を運用するのにGoogle Apps（Gmail）を利用しない理由はないと思います。</p>
<p>無料版である<a href="http://www.google.com/apps/intl/ja/group/index.html">Standard Edition</a>では</p>
<ul>
<li>無料（広告が表示されるだけ） で1アカウント7GBのメールボックスが<strong>独自ドメイン</strong>で作成できる</li>
<li><strong>50アカウント</strong>まで作成可能</li>
<li>Gmailと同じUI、同等の機能（検索、スパムフィルター、POP/IMAP対応、携帯・iPhone対応など）</li>
</ul>
<p>といった目に見える特徴と、なんと言っても<strong>サーバーを保守する必要がない</strong>という絶大なメリットがあります。</p>
<p>そこで、メールサーバーとしてGoogle Appsを利用する際に行った設定（主にDNS）と、自戒を込めて、アプリケーションサーバーでメールを送信する場合のポイントを書きたいと思います。</p>
<div class="toc">
<ol>
<li><a href="http://cloudrop.jp/cloud/mail_by_google_apps#toc-mx">MXレコードを設定する</a></li>
<li><a href="http://cloudrop.jp/cloud/mail_by_google_apps#toc-spf">SPFレコードを設定する</a></li>
<li><a href="http://cloudrop.jp/cloud/mail_by_google_apps#toc-mtapostfix">MTAの設定（Postfix）</a></li>
<li><a href="http://cloudrop.jp/cloud/mail_by_google_apps#toc-gmailrelay">Gmailにrelayするという選択肢</a></li>
</ol>
</div>
<p>※<a href="http://www.google.com/a/help/intl/ja/admins/resources/setup/index.html">Google Apps の導入手順</a>のステップ 4: ユーザー アカウントの作成以降の説明となります。</p>
<h3 id="toc-mx">MXレコードを設定する</h3>
<p>利用するドメインを管理しているDNSサーバーにMXレコードを追加します。<br />
<a href="http://www.google.com/support/a/bin/answer.py?answer=33352&#038;topic=9196"><br />
MX レコードの設定 &#8211; Google Apps ヘルプ</a>に設定すべきメールサーバーと、プライオリティーが記されているので、この通り設定します。cloudropではxxxxxx@cloudrop.jpというメールアドレスを利用するので、cloudrop.jpに対してMXレコードを以下のように設定しました。</p>
<p>bindの設定ファイル</p>
<pre class="terminal">
cloudrop.jp.	900	IN	MX	1 aspmx.l.google.com.
cloudrop.jp.	900	IN	MX	5 alt1.aspmx.l.google.com.
cloudrop.jp.	900	IN	MX	5 alt2.aspmx.l.google.com.
cloudrop.jp.	900	IN	MX	10 aspmx2.googlemail.com.
cloudrop.jp.	900	IN	MX	10 aspmx3.googlemail.com.
</pre>
<p>上記ヘルプはたびたび更新されていて、参考にしたタイミングによっては載っているプライオリティーの値やサーバーのアドレスが増減していることがあるようです。サーバーのアドレスがいきなり変わることはないと思いますが、リスクを考えてTTLはなるべく少なくして運用します。<br />
メールサーバーの台数を見ても、同じように自前で5台用意して運用するコストを考えると、メリットは歴然ですね。</p>
<p>ちなみに、digコマンドを利用するとメールサーバーにGoogle Appsを利用しているかどうかがわかります。例えば、有名な事例となっている<a href="http://www.google.com/a/help/intl/ja/admins/case_studies/tokyuhands.html">東急ハンズ</a>のドメインを引いてみると</p>
<pre class="terminal">
dig tokyu-hands.co.jp MX

; <<>> DiG 9.6.0-APPLE-P2 <<>> tokyu-hands.co.jp MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54632
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 3, ADDITIONAL: 5

;; QUESTION SECTION:
;tokyu-hands.co.jp.		IN	MX

;; ANSWER SECTION:
tokyu-hands.co.jp.	900	IN	MX	5 <strong>ALT1.ASPMX.L.GOOGLE.COM.</strong>
tokyu-hands.co.jp.	900	IN	MX	5 <strong>ALT2.ASPMX.L.GOOGLE.COM.</strong>
tokyu-hands.co.jp.	900	IN	MX	10 <strong>ASPMX2.GOOGLEMAIL.COM.</strong>
tokyu-hands.co.jp.	900	IN	MX	10 <strong>ASPMX3.GOOGLEMAIL.COM.</strong>
tokyu-hands.co.jp.	900	IN	MX	1 <strong>ASPMX.L.GOOGLE.COM.</strong>

;; AUTHORITY SECTION:
tokyu-hands.co.jp.	900	IN	NS	ns02.tokyu-hands.co.jp.
tokyu-hands.co.jp.	900	IN	NS	dns2.broadcenter.jp.
tokyu-hands.co.jp.	900	IN	NS	ns01.tokyu-hands.co.jp.

;; ADDITIONAL SECTION:
ASPMX.L.GOOGLE.COM.	131	IN	A	209.85.223.23
ALT1.ASPMX.L.GOOGLE.COM. 127	IN	A	209.85.210.80
ALT2.ASPMX.L.GOOGLE.COM. 211	IN	A	74.125.93.114
ASPMX2.GOOGLEMAIL.COM.	858	IN	A	209.85.135.27
ns02.tokyu-hands.co.jp.	900	IN	A	59.84.175.199
</pre>
<p>と、TTL900でGoogle AppsのMXレコードが５つ設定されているのがわかります。</p>
<h3 id="toc-spf">SPFレコードを設定する</h3>
<p>次に、SPFレコードを設定します。<br />
SPFレコードについては、</p>
<ul>
<li><a href="http://www.atmarkit.co.jp/fsecurity/special/82senderid/sender101.html">Sender ID：送信者側の設定作業 − ＠IT</a></li>
</ul>
<p>が詳しいので、ご覧下さい。<br />
この設定をしておくとことで、スパムフィルターに引っかかる確率が下がります。</p>
<p><a href="http://www.google.com/support/a/bin/answer.py?hl=jp&#038;answer=33786">SPF レコードの設定</a>に詳細が載っていて、DNSのTXTレコードに設定をすれば済むのですが、そのドメイン内で何かしらサービスを動かしている場合、Gmailのサーバー以外からメールを送る可能性があるので、そのサーバーのアドレスも合わせてSPFレコードに登録するべきです。</p>
<p>例えば、Web上から入力されたフォームをinfo宛にメールで飛ばしたり、各サーバーでLogwatchのレポートメールを飛ばしたりする場合です。</p>
<p>cloudrop.jpでは、アプリケーションサーバー（67.23.44.103）も@cloudrop.jpとしてメールを送信するので、以下の設定をしています。</p>
<p>bindの設定ファイル</p>
<pre class="terminal">
cloudrop.jp.	600	IN	TXT	"v=spf1 ip4:67.23.44.103 include:aspmx.googlemail.com ~all"
</pre>
<p>これを設定することで、アプリケーションサーバーが送信するメールのヘッダーが以下のように変ります（Gmailの場合）。</p>
<p>設定前</p>
<pre class="terminal">
Received-SPF: <strong>neutral</strong> (google.com: 67.23.44.103 is neither permitted nor denied by best guess record for domain of example@cloudrop.jp) client-ip=67.23.44.103;
Authentication-Results: mx.google.com; spf=<strong>neutral</strong> (google.com: 67.23.44.103 is neither permitted nor denied by best guess record for domain of example@cloudrop.jp) smtp.mail=example@cloudrop.jp
</pre>
<p>設定後</p>
<pre class="terminal">
Received-SPF: <strong>pass</strong> (google.com: domain of example@cloudrop.jp designates 67.23.44.103 as permitted sender) client-ip=67.23.44.103;
Authentication-Results: mx.google.com; spf=<strong>pass</strong> (google.com: domain of example@cloudrop.jp designates 67.23.44.103 as permitted sender) smtp.mail=example@cloudrop.jp
</pre>
<h3 id="toc-mtapostfix">MTAの設定（Postfix）</h3>
<p>後はアプリケーションサーバーのMTAの設定です。<br />
サーバー導入当初、Postfixの設定を間違えてメールが配送されないというミスをしてしまったので、自戒を込めて。</p>
<p>Postfixは受け取ったメールの送信先ドメインが/etc/postfix/main.cfの$mydestinationに設定したドメイン（FQDN）のリストに含まれているかどうかを判定します。含まれていた場合は自分自身のユーザーへ配信、含まれていない場合は該当するサーバーまで配送します。</p>
<p>Google Appsで設定したドメイン宛のメールはGmailのサーバーへ配送しなければいけないので、<strong>$mydestinationに含んではいけません</strong>。Google Appsに限らずメールゲートウェイでないサーバーでは当たり前の設定なんですが…。</p>
<h3 id="toc-gmailrelay">Gmailにrelayするという選択肢</h3>
<p>いちいちSPFレコードを追加するのも面倒くさいし、いっそのことGmailのサーバーへrelayしてしまえばいいという考えもあります。Postfixでは設定ファイルに数行追加し、パスワードファイルを作成することで簡単にrelayさせることができます。</p>
<p>Postfixの設定ファイルに追加します。（以下、CentOS5の場合）</p>
<pre class="terminal">
> sudo vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
</pre>
<p>設定ファイルで追加したパスワードファイルを作成し、ハッシュ化します。</p>
<pre class="terminal">
> sudo vi /etc/postfix/sasl_passwd

[smtp.gmail.com]:587    example@cloudrop.jp:password

> sudo postmap /etc/postfix/sasl_passwd
> sudo /etc/init.d/postfix restart
</pre>
<p>（ハッシュ化するとsasl_passwd.dbというファイルが生成されます。）</p>
<p>参考サイト</p>
<ul>
<li><a href="http://linux.matchy.net/archives/35">Postfix から Gmail 経由でメールを送る linux.matchy.net: 〜Linuxで遊ぼう！〜</a></li>
</ul>
<p>この設定を行うと自サーバーから送信することはなくなるのですが、Gmailの仕様に引っ張られてしまい、<strong>使いにくい面が多々あります</strong>。</p>
<p>まず、<strong>送信元がGmailのアカウントに上書き</strong>されてしまいます。例えば、example@cloudrop.jpというアドレス所有者としてrelayした場合、envelope fromをinfo@cloudrop.jpで送信したとしても、example@cloudrop.jpに上書きされ送信されてしまいます。アプリケーションや用途によって送信元を変えたいのが普通ですので、この仕様では使いにくいところです。</p>
<p>また、relayしたメールは該当メールアドレスのGmail<strong>送信箱に保存</strong>されていきます。1ユーザーのアカウントでrelay設定をした場合、システムが送ったものと人間が送ったものが混ざってしまうということです。</p>
<p>逆に、システム専用のアドレスを用意し、そのアドレスでrelayすればGmailの送信箱にメールが残り、検索しやすくなるなどのメリットもありそうですが、そのサーバーが送信するメールの送信元が全てrelayしたユーザーのアドレスになることを前提にシステムを構築しないといけませんし、Gmailで検索するのにシステム専用のアカウントでログインする必要があるなど、やはり使いにくさは否めません。</p>
<p>Gmailのメリットを享受しようとするならば、Gmailの自分宛にCC（BCC）してラベルを付けるなどした方が楽で、残念ながらrelayして活用するメリットはなさそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://cloudrop.jp/cloud/mail_by_google_apps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://cloudrop.jp/cloud/mail_by_google_apps" />
	</item>
	</channel>
</rss>
