<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>さくらたんどっとびーず</title>
	
	<link>http://sakuratan.biz</link>
	<description>さんまがおいしい季節だねー(´・ω・`)</description>
	<lastBuildDate>Mon, 06 May 2013 17:52:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sakuratan/HTqh" /><feedburner:info uri="sakuratan/htqh" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Gunosy問題を起点に色々考えてたらRSSやらGoogleの話になった</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/2RJQpbOrF5A/5267</link>
		<comments>http://sakuratan.biz/archives/5267#comments</comments>
		<pubDate>Mon, 06 May 2013 17:46:14 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5267</guid>
		<description><![CDATA[ここんとこ久しぶりにブログを書いてたので続けて何か書いてみようと思います。 で、まあ今最も熱いGunosyをいつ叩くんですか？今でしょ！、について書く気はまったく無くてですね、最近個別フィードのブログ読まなくなったよねー、という話を書きたいと思います。 少しだけ話をGunosyに戻しますが、先ほどいかに気持ち悪くGunosyを叩くブコメを放り込んでやろうかと考えてGunosy関係のことを書いてるブ... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5267">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>ここんとこ久しぶりにブログを書いてたので続けて何か書いてみようと思います。</p>
<p>で、まあ今最も熱いGunosyをいつ叩くんですか？今でしょ！、について書く気はまったく無くてですね、最近個別フィードのブログ読まなくなったよねー、という話を書きたいと思います。</p>
<p>少しだけ話をGunosyに戻しますが、先ほどいかに気持ち悪くGunosyを叩くブコメを放り込んでやろうかと考えてGunosy関係のことを書いてるブログを見てたらですね、この手のサービス、キュレーションって言うんですか？ネットニュースを色々まとめて適当な量だけ届けてくれるサービスを期待してる人って結構いるんだな、と気付きまして。自分的には2chとはてブの新着3usersとαヲチャーの人達あたりを追っかけてたら新鮮なネタにそれほど困ることも無いので、Gunosyとかも最初に話題になった時から今にいたるまでまーったく興味湧かないんですが、そういうのが無かったらGunosy的なキュレーションサービスが欲しくなるのも割と普通の流れのような気もします。</p>
<p>Gunosy以外にも<a href="http://www.crowsnest.tv">crownsnest</a>とかありましたし、海外でも<a href="http://summly.com">Summly</a>（Yahooが買収）やら<a href="https://wavii.com">Wavii</a>（Googleが買収）やらありますし、割と今活発に開発されてるジャンルなんですよね。てことは注目度も当然高いと。繰り返しますが個人的にはまーったく興味無いですが。</p>
<p>でまあ、そういうことを考えておりましたら、最近自分でもブログの個別のフィードをあんま見ないしGoogle Readerなんかもほぼはてブリーダーとして使ってる現状を思い出しまして、ネットを見て回る行為自体めんどくさいと感じてるのはキュレーションを求める人も自分も大して変わらないんじゃね？という結論に落ち着きました。ただ上に書いた通り自分の場合ネットを見て回らなくてもだいたいの話題に乗っかれる状態に元からあったってだけで、そういうのが無かったらGunosy的な何かが欲しいのは自然な流れかなーと思い直すに至ったのであります。</p>
<p>とか考えておりますと、そもそもなんで見て回る行為がめんどくさいと思うようになったかという話になるのですが、そうなりますとまずはめんどくさいと思ってなかった頃を思す必要がある訳です。何年前か忘れましたけどRSSリーダーを毎日楽しく見ていた時機があったなーと遠い目をしながら、なんで楽しく見なくなったかと言う事を考える訳であります。</p>
<p>自分の場合、なんか検索する→ブログがヒットする→面白い→RSSリーダーに放り込む、という流れで新しいブログを読み始めることが多かったのですが、最近はなんか検索する→ロクな内容がヒットしない→（プログラマですので）site:apple.comとかsite:stackoverflow.comとかを付けてググる→終わり、という流れになってて結論からいうとロクな内容がヒットしないグーグルが全部悪いということになってしまいました。</p>
<p>で、ロクな内容がヒットしなくなった原因なんですが、なんなんでしょうかね？</p>
<p>ただまあなんとなくツイッターやらFacebookやらで済ましちゃおう欲というか、こんな破綻した感じのブログ記事をポストしたら下手したらブ※でﾌﾙﾎﾞｯｺだよね、たぶん誰にも読まれないんだろうけど…うーん書くのやめちゃおう！とちょうど今思ってたのが原因じゃないかと思いましたので、意地でも公開してやる運びとなりました。非アルファ系ブロガー皆様におかれましてはぜひ私を見習ってチラ裏投稿に励まれてみてはいかがかと思います。</p>
<p>ちなみに久しぶりにブログを書いたもので書き方を完全に忘れておりました故、本日の文体は先ほど読んだ元突撃隊長ことやまもといちろう氏の文体に過分な影響を受けていると思われますので、mixiの行く末についての小気味の良い文章で締めくくらなければならないところなのですが、まったく思いつかなかったのでこのまま終わろうと思います。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2RJQpbOrF5A:PDl9knA4Lcg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2RJQpbOrF5A:PDl9knA4Lcg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2RJQpbOrF5A:PDl9knA4Lcg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2RJQpbOrF5A:PDl9knA4Lcg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2RJQpbOrF5A:PDl9knA4Lcg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/2RJQpbOrF5A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5267/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5267</feedburner:origLink></item>
		<item>
		<title>Twit Delayで140字を超えた入力でダイアログが出るバグについて</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/PnXykv8WeN8/5265</link>
		<comments>http://sakuratan.biz/archives/5265#comments</comments>
		<pubDate>Mon, 06 May 2013 07:06:51 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5265</guid>
		<description><![CDATA[えーと、前回の修正でバグを作りこんでしまったようです。 Twit Delayの入力画面で140字を超えた場合にダイアログが出るようになっていましたが、先ほど修正しました。]]></description>
			<content:encoded><![CDATA[<p>えーと、<a href="http://sakuratan.biz/archives/5260">前回の修正</a>でバグを作りこんでしまったようです。</p>
<p>Twit Delayの入力画面で140字を超えた場合にダイアログが出るようになっていましたが、先ほど修正しました。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=PnXykv8WeN8:BmaUGSe_ZE4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=PnXykv8WeN8:BmaUGSe_ZE4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=PnXykv8WeN8:BmaUGSe_ZE4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=PnXykv8WeN8:BmaUGSe_ZE4:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=PnXykv8WeN8:BmaUGSe_ZE4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=PnXykv8WeN8:BmaUGSe_ZE4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/PnXykv8WeN8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5265/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5265</feedburner:origLink></item>
		<item>
		<title>Twit Delayの投稿文字数カウントに関するバグを修正しました</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/9OtSDl4g3dQ/5260</link>
		<comments>http://sakuratan.biz/archives/5260#comments</comments>
		<pubDate>Sun, 05 May 2013 08:14:14 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5260</guid>
		<description><![CDATA[前回ブログに投稿したバグ修正の続きです。 投稿文字数のカウント方法に関するバグがあり、予約投稿が指定日時になっても送信されない状態になっていた問題を修正しました。 一応これで今回の予約投稿に関するバグはすべて対応した形になります。 なお、既に予約済みの投稿については内部的に文字数をうまいことごにょっと修正する方法がありませんので、指定日時になっても送信されないと思います。その際は編集し直してから再... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5260">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://sakuratan.biz/archives/5255">前回ブログに投稿したバグ修正</a>の続きです。</p>
<p>投稿文字数のカウント方法に関するバグがあり、予約投稿が指定日時になっても送信されない状態になっていた問題を修正しました。<br />
一応これで今回の予約投稿に関するバグはすべて対応した形になります。</p>
<p>なお、既に予約済みの投稿については内部的に文字数をうまいことごにょっと修正する方法がありませんので、指定日時になっても送信されないと思います。その際は編集し直してから再予約願います。</p>
<p>なんか他にあったら教えてくだはれ。<br />
んでわ</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=9OtSDl4g3dQ:MGmfXPW_Ao4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=9OtSDl4g3dQ:MGmfXPW_Ao4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=9OtSDl4g3dQ:MGmfXPW_Ao4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=9OtSDl4g3dQ:MGmfXPW_Ao4:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=9OtSDl4g3dQ:MGmfXPW_Ao4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=9OtSDl4g3dQ:MGmfXPW_Ao4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/9OtSDl4g3dQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5260/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5260</feedburner:origLink></item>
		<item>
		<title>Twit Delayの投稿遅延について</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/2xtFNjkcKG0/5255</link>
		<comments>http://sakuratan.biz/archives/5255#comments</comments>
		<pubDate>Sat, 27 Apr 2013 14:19:22 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5255</guid>
		<description><![CDATA[えーと、ブログではお久しぶりでございます。とりあえず生きてますw 先日からTwit Delayの投稿遅延が発生しているようで、Twitter経由で何件かお問い合わせを頂きました。まずはお詫び申し上げます。 原因ですが、140字以上のツイートを投稿した際にエラーが発生し、そのエラーを再投稿しようとしたものが溜まっていたためでした。Twit Delayを作ってからもうだいぶ経ちますのでだいぶうろ覚えな... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5255">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>えーと、ブログではお久しぶりでございます。とりあえず生きてますw</p>
<p>先日からTwit Delayの投稿遅延が発生しているようで、Twitter経由で何件かお問い合わせを頂きました。まずはお詫び申し上げます。</p>
<p>原因ですが、140字以上のツイートを投稿した際にエラーが発生し、そのエラーを再投稿しようとしたものが溜まっていたためでした。Twit Delayを作ってからもうだいぶ経ちますのでだいぶうろ覚えなのですが、Twitter API 1.0のころは問題無かったように思いますので何か仕様が変わったような気もします（がうろ覚えなのでなんともw）。</p>
<p>対応としまして、とりあえずTwitterから140字以上で投稿失敗した旨のエラーが返ってきた際はリトライ日時を2099/12/31に変更するようにしています。メイン画面でリトライ日時が2099年になっているのがあれば文字数を減らして再投稿もしくは削除願います。</p>
<p>現在溜まっているツイートを投稿している最中ですので、すぐに全てのツイート予約の滞留が解消される訳ではないのですが、じきに正常に戻ると思います。</p>
<p>なお、GAEがPython2.7になるらしく、今年中にシステムを載せ変えないといけないみたいなのでまたTwit Delay関係のご連絡があると思います。</p>
<p>P.S.<br />
書くの忘れてました。<br />
凍結ユーザーの予約ツイートエラーも少し溜まっていたようですが、こちらは消すように変えてます。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2xtFNjkcKG0:ujS6pn0gQao:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2xtFNjkcKG0:ujS6pn0gQao:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2xtFNjkcKG0:ujS6pn0gQao:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2xtFNjkcKG0:ujS6pn0gQao:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2xtFNjkcKG0:ujS6pn0gQao:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/2xtFNjkcKG0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5255/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5255</feedburner:origLink></item>
		<item>
		<title>PostfixとDovecotでさくらVPS上にバーチャルメールボックスが利用できるメールサーバを作る</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/5S9sryQ2DWw/5182</link>
		<comments>http://sakuratan.biz/archives/5182#comments</comments>
		<pubDate>Sat, 24 Dec 2011 09:17:35 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[メールサーバ]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5182</guid>
		<description><![CDATA[Postfix と Dovecot でさくらVPS上にメールサーバを動かしてみましたので設定例を置いときます。 Postfix は SMTP サーバでメールを送る部分の担当、Dovecot は POP3/IMAP サーバでクライアントからメールを見る部分の担当です。完結したメールサーバとして動かすには両方必要になります。 設定方針は以下の3点です。 バーチャルメールボックスの設定を行い Unix ... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5182">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>Postfix と Dovecot でさくらVPS上にメールサーバを動かしてみましたので設定例を置いときます。</p>
<p>Postfix は SMTP サーバでメールを送る部分の担当、Dovecot は POP3/IMAP サーバでクライアントからメールを見る部分の担当です。完結したメールサーバとして動かすには両方必要になります。</p>
<p>設定方針は以下の3点です。</p>
<ol>
<li>バーチャルメールボックスの設定を行い Unix ユーザーを作らなくてもメールを受信できるように設定します。</li>
<li>なるたけセキュリティ的に硬めにしたかったので、自サーバ宛のメールの配送と、サブミッションポート経由で SSL + SMTP AUTH で認証されたクライアントからの外部へのリレーのみを許可します。</li>
<li>バーチャルメールボックスのパスワード管理は Dovecot で一元管理します。（Postfix での SMTP AUTH の認証時のアカウント管理に Dovecot を使うという意味です。Postfix と Dovecot で別々にパスワード管理する方法もありますがぶっちゃけ面倒くさいので。）</li>
</ol>
<p>さくらVPSっつーか CentOS 上で Postfix と Dovecot を設定する例はググったら沢山でてきますので、違う方法の設定が必要な場合は適当にお調べください。つーことで本題に突入。</p>
<h3>パッケージのインストール</h3>
<p>yum から postfix と dovecot をインスコします。cyrus-sasl-md5 は SMTP 認証等で CRAM-MD5 による認証を有効にする場合に必要です。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">yum install</span> postfix dovecot cyrus-sasl-md5</div></div>
<p>sendmail とか他のメールサーバを外向けの設定で運用していない場合はいきなり postfix を有効にして問題ありませんので、その前提で話を進めます。</p>
<p>CentOS をインストールした状態では sendmail が動いていますので落とします。以下のように chkconfig で確認して on になっていたら、</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ chkconfig <span style="color: #660033;">--list</span> <span style="color: #c20cb9; font-weight: bold;">sendmail</span><br />
<span style="color: #c20cb9; font-weight: bold;">sendmail</span> &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">0</span>:off &nbsp; <span style="color: #000000;">1</span>:off &nbsp; <span style="color: #000000;">2</span>:on &nbsp; &nbsp;<span style="color: #000000;">3</span>:on &nbsp; &nbsp;<span style="color: #000000;">4</span>:on &nbsp; &nbsp;<span style="color: #000000;">5</span>:on &nbsp; &nbsp;<span style="color: #000000;">6</span>:off</div></div>
<p>sendmail を止めてから postfix を起動します。ついでに chkconfig でサーバリブート時に postfix が起動するようにします。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sendmail</span> stop<br />
$ <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>postfix reload<br />
$ chkconfig <span style="color: #c20cb9; font-weight: bold;">sendmail</span> off<br />
$ chkconfig postfix on</div></div>
<hr class="linebreak">
<p>続けて alternatives で（サーバからのメール送信に使われる） sendmail コマンドを postfix に変更します。</p>
<p>現代的な Unix 系のシステムでは sendmail というメールサーバと sendmail というコマンドは別物として扱われており（元々は sendmail メールサーバに sendmail コマンドが付いていたのですが、sendmail コマンドを呼び出しているアプリケーションプログラムが多々存在するためメールサーバを変更する際に都合が悪いので、コマンドを分けた形です）。</p>
<p>CentOS ではメールを送信するために使う sendmail コマンドは alternatives で指定されたコマンドへのシンボリックリンクとなっています。</p>
<p>以下のように alternatives を実行すると、sendmail コマンドを実行した際に sendmail.postfix （Postfix の sendmail コマンド）が実行されるようになります。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ alternatives <span style="color: #660033;">--config</span> mta<br />
<br />
There are <span style="color: #000000;">2</span> programs <span style="color: #c20cb9; font-weight: bold;">which</span> provide <span style="color: #ff0000;">'mta'</span>.<br />
<br />
&nbsp; Selection &nbsp; &nbsp;Command<br />
<span style="color: #660033;">-----------------------------------------------</span><br />
<span style="color: #000000; font-weight: bold;">*</span>+ <span style="color: #000000;">1</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>sendmail.sendmail<br />
&nbsp; &nbsp;<span style="color: #000000;">2</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>sendmail.postfix<br />
<br />
Enter to keep the current selection<span style="color: #7a0874; font-weight: bold;">&#91;</span>+<span style="color: #7a0874; font-weight: bold;">&#93;</span>, or <span style="color: #7a0874; font-weight: bold;">type</span> selection number: <span style="color: #000000;">2</span></div></div>
<hr class="linebreak">
<p>以上が終わったらローカル配送できてるかテストしてみます。（別にしなくても良いですけど早めに問題見つけといた方が楽ですし…）</p>
<p>てことで適当なユーザー（以下の例では root）でログインして適当なユーザーにメールを送ってみます。（シェルから sendmail コマンドを実行すればメールを送れます。sendmail コマンドを実行する際、&#8221;.&#8221; だけの行を入力するとメールが送信されます。）</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sendmail</span> root<br />
From: root<br />
To: root<br />
Subject: <span style="color: #7a0874; font-weight: bold;">test</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">test</span><br />
.</div></div>
<p>送ったメールは（宛先のユーザーでログインして）mail コマンドで見れます。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ mail<br />
Mail version <span style="color: #000000;">8.1</span> <span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">93</span>. &nbsp;Type ? <span style="color: #000000; font-weight: bold;">for</span> help.<br />
<span style="color: #ff0000;">&quot;/var/spool/mail/root&quot;</span>: <span style="color: #000000;">1</span> message <span style="color: #000000;">1</span> new<br />
<span style="color: #000000; font-weight: bold;">&gt;</span>N &nbsp;<span style="color: #000000;">1</span> root<span style="color: #000000; font-weight: bold;">@</span>www9999u.sakur &nbsp;Fri Dec <span style="color: #000000;">16</span> 00:<span style="color: #000000;">33</span> &nbsp;<span style="color: #000000;">14</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">466</span> &nbsp; <span style="color: #ff0000;">&quot;test&quot;</span><br />
<span style="color: #000000; font-weight: bold;">&amp;</span> <br />
Message <span style="color: #000000;">1</span>:<br />
From root<span style="color: #000000; font-weight: bold;">@</span>www9999u.sakura.ne.jp &nbsp;Fri Dec <span style="color: #000000;">16</span> 00:<span style="color: #000000;">33</span>:<span style="color: #000000;">13</span> <span style="color: #000000;">2011</span><br />
X-Original-To: root<br />
Delivered-To: root<span style="color: #000000; font-weight: bold;">@</span>www9999u.sakura.ne.jp<br />
From: root<span style="color: #000000; font-weight: bold;">@</span>www9999u.sakura.ne.jp<br />
To: root<span style="color: #000000; font-weight: bold;">@</span>www9999u.sakura.ne.jp<br />
Subject: <span style="color: #7a0874; font-weight: bold;">test</span><br />
Date: Fri, <span style="color: #000000;">16</span> Dec <span style="color: #000000;">2011</span> 00:<span style="color: #000000;">33</span>:00 +0900 <span style="color: #7a0874; font-weight: bold;">&#40;</span>JST<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">test</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&amp;</span> q<br />
Saved <span style="color: #000000;">1</span> message <span style="color: #000000; font-weight: bold;">in</span> mbox</div></div>
<p>メールが届いてなかったら /var/log/maillog を見て問題を探してください。（上記の設定内容でローカル配送のメールが届くのが遅れたりすることは基本的にありませんので「届いてなかった＝問題がある」と判断してもらって結構です。）</p>
<h3>Postfix と Dovecot の設定</h3>
<p>パスワード管理を共有する関係上、両方とも動いてから動作確認する方が速いと思いますので、一気に Postfix と Dovecot の設定を行います。</p>
<p>例示のため、バーチャルメールボックスに使用するドメインを example.com、バーチャルメールボックスに追加するメールアドレスを test@example.com として記述しています。実際の環境に合わせて読み替えてください。</p>
<h4>バーチャルメールボックス管理ユーザーの作成</h4>
<p>最初にバーチャルメールボックスを読み書きするための Unix ユーザーを作ります。（以下の例では vmail ユーザーを使います。）</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ groupadd <span style="color: #660033;">-g</span> <span style="color: #000000;">10000</span> vmail<br />
$ useradd <span style="color: #660033;">-u</span> <span style="color: #000000;">10000</span> <span style="color: #660033;">-g</span> <span style="color: #000000;">10000</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>vmail <span style="color: #660033;">-r</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>nologin vmail<br />
$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>vmail<br />
$ <span style="color: #c20cb9; font-weight: bold;">chown</span> vmail:vmail <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>vmail<br />
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">700</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>vmail</div></div>
<p>UID/GID は 10000 以外でも構いませんが、Postfix/Dovecot を設定する際に ID を指定する必要があるので UID/GID の番号を覚えておいてください。</p>
<h4>SSL 自己証明書と秘密鍵の作成</h4>
<p>Postfix/Dovecot ともに SSL を有効にするため、自己証明書と秘密鍵を作成します。（Dovecot に example.com の自己証明書と秘密鍵が付いてるのですが一応自サーバ用に作ります。）</p>
<p>/etc/pki/tls/certs ディレクトリの Makefile で秘密鍵を含む自己証明書を簡単に作れるのですが、後述する DER 形式ファイルを作成するため openssl コマンドを直接実行して作成します。</p>
<p>コマンドを実行すると証明書のパラメータを質問されますが、Common Name に VPS サーバのサーバ名（以下の例では www9999u.sakura.ne.jp）を入力し、それ以外の項目はデフォルトで構いません（ちゃんと入力しても良いですけど）。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>pki<span style="color: #000000; font-weight: bold;">/</span>tls<span style="color: #000000; font-weight: bold;">/</span>certs<br />
$ openssl req <span style="color: #660033;">-new</span> <span style="color: #660033;">-x509</span> <span style="color: #660033;">-nodes</span> <span style="color: #660033;">-days</span> <span style="color: #000000;">365</span> <span style="color: #660033;">-out</span> mail.crt <span style="color: #660033;">-keyout</span> mail.key<br />
Generating a <span style="color: #000000;">1024</span> bit RSA private key<br />
....++++++<br />
.......................................................++++++<br />
writing new private key to <span style="color: #ff0000;">'mail.key'</span><br />
<span style="color: #660033;">-----</span><br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter <span style="color: #ff0000;">'.'</span>, the field will be left blank.<br />
<span style="color: #660033;">-----</span><br />
Country Name <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span> letter code<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>GB<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<br />
State or Province Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>full name<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Berkshire<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<br />
Locality Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>eg, city<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Newbury<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<br />
Organization Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>eg, company<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>My Company Ltd<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<br />
Organizational Unit Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>eg, section<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>:<br />
Common Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>eg, your name or your server<span style="color: #ff0000;">'s hostname) []:www9999u.sakura.ne.jp<br />
Email Address []:<br />
$chmod 600 mail.key</span></div></div>
<p>mail.crt が証明書ファイル、mail.key が秘密鍵ファイルです。証明書の有効期限は365日となっています。もっと長くしたい場合は -days オプションで増やしてください。</p>
<p>Outlook Express や Entourage、AppleMail などのクライアントを使っている場合、証明書をクライアントにインストールしないと警告が表示されるらしいので、インストール用の DER 形式の証明書を作成します。以下のコマンドで作成される mail.der をインストールしたら良いらしいです。（が、この辺は試してないのでうまくいかなかったら<a href="http://vine-linux.ddo.jp/linux/mail/inport.php">証明書のインポート &#8211; メール(Postfix) &#8211; 自宅サーバーの構築 &#8211; 自宅サーバーでやってみよう！！</a>等を参考にしてください。）</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span>openssl x509 <span style="color: #660033;">-inform</span> pem <span style="color: #660033;">-in</span> mail.crt <span style="color: #660033;">-outform</span> der <span style="color: #660033;">-out</span> mail.der</div></div>
<h4>Dovecot の設定</h4>
<p>Dovecot 側でパスワードを一元管理する関係上、こちらの設定を先に行います。Dovecot の設定ファイル /etc/dovecot.conf を編集し、アカウント管理用の /etc/dovecot-passwd ファイルを作成します。</p>
<p>まず Dovecot の設定ファイル /etc/dovecot.conf を編集します。ssl_cert_file と ssl_key_file は先ほど作った自己証明書と秘密鍵ファイルです。その他の設定は auth default セクション中に足します。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">ssl_cert_file</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /etc/pki/tls/certs/mail.crt</span><br />
<span style="color: #000099;">ssl_key_file</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /etc/pki/tls/certs/mail.key</span><br />
<br />
auth default <span style="">&#123;</span><br />
&nbsp; <span style="color: #000099;">mechanisms</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> cram-md5 digest-md5 plain login</span><br />
&nbsp; passdb passwd-file <span style="">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000099;">args</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /etc/dovecot-passwd</span><br />
&nbsp; <span style="">&#125;</span><br />
&nbsp; socket listen <span style="">&#123;</span><br />
&nbsp; &nbsp; client <span style="">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000099;">path</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /var/spool/postfix/private/auth</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000099;">mode</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 0660</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000099;">user</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> postfix</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000099;">group</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> postfix</span><br />
&nbsp; &nbsp; <span style="">&#125;</span><br />
&nbsp; <span style="">&#125;</span><br />
&nbsp; userdb static <span style="">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000099;">args</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> uid=10000 gid=10000 home=/var/spool/vmail/%d/%n</span><br />
&nbsp; <span style="">&#125;</span><br />
<span style="">&#125;</span></div></div>
<p>実際の dovecot.conf にはコメントが大量に入ってて修正箇所を探すのが面倒かもしれませんが、ssl_cert_file、ssl_key_file、mechanisms は元からありますので書き換え、その他は auth default セクションの最後の方に足してもらうのが速いと思います。</p>
<p>設定ファイルの詳細については <a href="http://wiki.dovecot.org/FrontPage">Dovecot Wiki</a> をご覧ください。</p>
<hr class="linebreak">
<p>dovecot.conf の編集が終わったら /etc/dovecot-passwd ファイルを作成します。Dovecot をインストールした状態ではこのファイルは存在しませんので新規作成します。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">test@example.com:<span style="">&#123;</span>HMAC-MD5<span style="">&#125;</span>dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3<br />
test2@example.com:<span style="">&#123;</span>HMAC-MD5<span style="">&#125;</span>dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3</div></div>
<p>dovecot-passwd ファイルには、ユーザー名と暗号化されたパスワードを &#8220;:&#8221; で区切って記述します。「ユーザー名＝メールアドレス」にした方がメールクライアントの設定が楽なのでそうしてますが、ユーザー名部分はメールアドレスでないとダメって訳ではありません。</p>
<p>暗号化されたパスワードは dovecotpw コマンドで取得できますのでコピペします。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ dovecotpw <br />
Enter new password: <br />
Retype new password: <br />
<span style="color: #7a0874; font-weight: bold;">&#123;</span>HMAC-MD5<span style="color: #7a0874; font-weight: bold;">&#125;</span>dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3</div></div>
<p>dovecot-passwd ファイルにはユーザーIDやホームディレクトリなど passwd ファイルと似たような項目を指定することもできるのですが、Postfix と連携するだけなら userdb static で指定した方が速いと思いますので省略します。詳しくは <a href="http://wiki.dovecot.org/AuthDatabase/PasswdFile">AuthDatabase/PasswdFile &#8211; Dovecot Wiki</a> をご覧ください。</p>
<hr class="linebreak">
<p>設定が終わったら dovecot サーバを起動します。ついでに chkconfig でサーバリブート時に dovecot が起動するように設定しておきます。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>dovecot start<br />
$ chkconfig dovecot on</div></div>
<h4>Postfix の設定</h4>
<p>Postfix の設定では、Postfix 全体の設定ファイル /etc/postfix/main.cf とサブプロセス別の設定ファイル /etc/postfix/master.cf を編集し、バーチャルメールボックス管理用ファイル /etc/postfix/vmailbox を作成します。</p>
<p>まず /etc/postfix/main.cf を修正します。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">inet_interfaces</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> all</span><br />
<br />
# SASL<br />
#smtpd_sasl_auth_enable <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> yes</span><br />
<span style="color: #000099;">smtpd_recipient_restrictions</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> permit_mynetworks, reject_unauth_destination</span><br />
#broken_sasl_auth_clients <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> yes</span><br />
<br />
<span style="color: #000099;">smtpd_sasl_type</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> dovecot</span><br />
<span style="color: #000099;">smtpd_sasl_path</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> private/auth</span><br />
<span style="color: #000099;">smtpd_sasl_security_options</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> noanonymous</span><br />
<br />
# TLS<br />
<span style="color: #000099;">smtpd_use_tls</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> yes</span><br />
<span style="color: #000099;">smtpd_tls_key_file</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /etc/pki/tls/certs/mail.key</span><br />
<span style="color: #000099;">smtpd_tls_cert_file</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /etc/pki/tls/certs/mail.csr</span><br />
<br />
# Virtual<br />
<span style="color: #000099;">virtual_mailbox_domains</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> example.com</span><br />
<span style="color: #000099;">virtual_mailbox_base</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /var/spool/vmail</span><br />
<span style="color: #000099;">virtual_mailbox_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> hash:/etc/postfix/vmailbox</span><br />
<span style="color: #000099;">virtual_minimum_uid</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 100</span><br />
<span style="color: #000099;">virtual_uid_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> static:10000</span><br />
<span style="color: #000099;">virtual_gid_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> static:10000</span><br />
<span style="color: #000099;">virtual_alias_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> hash:/etc/postfix/virtual</span></div></div>
<p>inet_interfaces は main.cf に元から設定が存在するので書き換えてください。他の項目は存在しないと思いますので、適当な場所に追加してください。</p>
<p>#smtpd_sasl_auth_enable = yes の行はコメントアウトしたままにしておいてください。後ほど master.cf を編集する際に、サブミッションポートからの接続時のみ smtpd_sasl_auth_enable = yes になるように設定します。設定ファイルを見たとき分かりにくいと思いますので、あえてコメントアウトで残しておいてもらった方が良いと思います。（まあコメントアウトせずに何も書かなくても結構ですけど。）</p>
<p>古い Outlook を使っている場合は、broken_sasl_auth_clients = yes を有効にする必要があります。SMTP AUTH に関するバグがあるそうです。うちでは Outlook は使ってないのでコメントアウトしてます。</p>
<p>バーチャルメールボックスのメールアドレスに使用するドメインは virtual_mailbox_domains に指定します。上の例では example.com になっていますので、実際に使用するドメインを記述してください。カンマ区切りで複数指定することもできます。</p>
<p>virtual_mailbox_domains に指定するドメインは mydestination と重複しないようにしてください。デフォルトで mydestination は $myhostname, localhost.$mydomain, localhost になっており、さくら VPS の場合 myhostname は www9999u.sakura.ne.jp とかになります。</p>
<p>myhostname を example.com にして mydestination を空にすることもできますが、cron 等システム内部からのメールはバーチャルメールボックスではなくローカル配送にした方が良いと思いますので、mydestination や myhostname はデフォルトのままの方が良いと思います。それとメールサーバの DNS の逆引き設定を行っていないと受信を拒否するサーバもあり、sakura.ne.jp のホストは逆引き可能ですので、その辺のトラブルを避けるためにもこの設定の方が楽だと思います。まあこの辺に色々うんちくのある方はご自由にどうぞ、っつーかそういう人はこんなブログ見ながら設定してはいけませんw</p>
<p>virtual_mailbox_base を別の場所に変えてもオッケーですが、あらかじめディレクトリが存在している必要があり、virtual_uid_maps で指定されるユーザーから制御可能である必要があります。この辺の設定は先ほど vmail ユーザーを作った際に行っていますが、変更する際は Postfix の要求を満たすよう適宜設定を行ってください。</p>
<p>smtpd_tls_key_file と smtpd_tls_cert_file には先ほど作った自己証明書と秘密鍵ファイルを指定します。</p>
<hr class="linebreak">
<p>main.cf の設定が終わったら /etc/postfix/master.cf を編集します。</p>
<p>以下の submission ポートの設定がコメントアウトされてると思いますので、有効にします。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">submission inet n &nbsp; &nbsp; &nbsp; - &nbsp; &nbsp; &nbsp; n &nbsp; &nbsp; &nbsp; - &nbsp; &nbsp; &nbsp; - &nbsp; &nbsp; &nbsp; smtpd<br />
&nbsp; -o smtpd_enforce_tls<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">yes</span><br />
&nbsp; -o smtpd_sasl_auth_enable<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">yes</span><br />
&nbsp; -o smtpd_client_restrictions<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">permit_sasl_authenticated,reject</span><br />
-o smtpd_recipient_restrictions<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">permit_sasl_authenticated,reject_unauth_destination</span></div></div>
<hr class="linebreak">
<p>最後に /etc/postfix/vmailbox を編集して Postfix の設定は終わりです。Postfix をインストールした状態ではこのファイルは存在しませんので新規作成します。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">test@example.com &nbsp; &nbsp; &nbsp; &nbsp;example.com/test/Maildir/<br />
test2@example.com &nbsp; &nbsp; &nbsp; example.com/test2/Maildir/</div></div>
<p>vmailbox ファイルにはバーチャルメールボックスのメールアドレスとメールボックスのパスを空白（タブ）区切りで記述していきます。</p>
<p>メールボックスのパスは virtual_mailbox_base からの相対パスを指定します。上の例ですと、test@example.com 宛てのメールは /var/spool/vmail/example.com/test/Maildir/ に Maildir 形式で保存されます。</p>
<p>Postfix はメールボックスのパスの末尾を / で終えると Maildir 形式、/ 無しで終えると mbox 形式で保存します。何言ってるか分からない人はとりあえず Maildir 形式でえーと思います。</p>
<p>編集が終わったら postmap コマンドでデータベースに変換します。これを実行しないと Postfix が起動しません。virtual ファイルは転送設定用のファイルで、こちらもデータベースが必要ですので一緒に postmap します。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ postmap <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>postfix<span style="color: #000000; font-weight: bold;">/</span>vmailbox<br />
$ postmap <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>postfix<span style="color: #000000; font-weight: bold;">/</span>virtual</div></div>
<hr class="linebreak">
<p>設定が終わったら postfix をリブートします。</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>postfix reload</div></div>
<h3>DNS</h3>
<p>メールサーバを運用する際は、DNS に MX レコードを用意しておいた方が良いです。</p>
<p>A レコードだけでも運用できますが、DNS の二度引きが発生したりするので、バーチャルメールアドレスでの送受信に使用する MX レコードを作成します。</p>
<p>ドメインの登録を Value Domain で行っている場合は、以下のように設定してください。ドメインが example.com、サーバの IP アドレスが 192.0.2.1、メール送信用のホストが mail.example.com、の場合の設定例です。mail.example.com ではなく example.com を MX に指定しても良いのですが、メールサーバだけ移転とかする際にこの方が楽なので別ホスト扱いにしておいた方が良いと思います。</p>
<div class="codecolorer-container ini dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">a @ 192.0.2.1<br />
a mail 192.0.2.1<br />
mx mail.example.com. <span style="">10</span></div></div>
<p>なお、新規にメールサーバを立てる（誰にもメールアドレスを教えていない状態の）場合は、メールサーバの設定より先に DNS の設定を行っておいても構いません。</p>
<h3>クライアントからの送信</h3>
<p>以上でメールサーバの設定は完了です。あとはクライアントの設定をして終わりです。</p>
<p>クライアントの設定ですが、以下のような感じになります。（メールサーバを mail.example.com、メールアドレスを test@example.com にした場合。）</p>
<dl>
<dt><b>SMTP</b></dt>
<dd>
<table>
<tr>
<th>ホスト</th>
<td>mail.example.com</td>
</tr>
<tr>
<th>ポート</th>
<td>587</td>
</tr>
<tr>
<th>SMTP AUTH ユーザー</th>
<td>test@example.com</td>
</tr>
<tr>
<th>SMTP AUTH パスワード</th>
<td>dovecot-passwd のパスワード</td>
</tr>
<tr>
<th>その他</th>
<td>STARTLS を使用して SSL を有効にする必要あり</td>
</tr>
</table>
</dd>
<dt><b>POP3</b></dt>
<dd>
<table>
<tr>
<th>ホスト</th>
<td>mail.example.com</td>
</tr>
<tr>
<th>ポート</th>
<td>110 （POP3S を使用する場合は 995）</td>
</tr>
<tr>
<th>ユーザー</th>
<td>test@example.com</td>
</tr>
<tr>
<th>パスワード</th>
<td>dovecot-passwd のパスワード</td>
</tr>
</table>
</dd>
<dt><b>IMAP</b></dt>
<dd>
<table>
<tr>
<th>ホスト</th>
<td>mail.example.com</td>
</tr>
<tr>
<th>ポート</th>
<td>143 （IMAPS を使用する場合は 993）</td>
</tr>
<tr>
<th>ユーザー</th>
<td>test@example.com</td>
</tr>
<tr>
<th>パスワード</th>
<td>dovecot-passwd のパスワード</td>
</tr>
</table>
</dd>
</dl>
<p>クライアント別の設定例はちょっと書ききれませんので、<a href="http://www.atmarkit.co.jp/fwin2k/win2ktips/798submssn/submssn.html">サブミッション・ポートを利用してメールを送信する － ＠IT</a> や <a href="http://www.atmarkit.co.jp/fwin2k/win2ktips/1100mailssl/mailssl.html">メールの送受信でSSLを利用して暗号化する－ ＠IT</a> を参考にお試しください。</p>
<h3>実運用に際して</h3>
<p>ほったらかしの運用だとじきにクラックされる可能性もありますので、実際に運用する際はログ監視ぐらいは最低限行っておいた方が良いと思います。</p>
<p>今日のネタはメールサーバの設定っつーことですのでログ監視ツールの使い方は説明しませんが、<a href="http://sourceforge.net/projects/swatch/">swatch</a> とか使ったら良いと思います。</p>
<p>んでわ</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=5S9sryQ2DWw:2y5T4TCtcDI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=5S9sryQ2DWw:2y5T4TCtcDI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=5S9sryQ2DWw:2y5T4TCtcDI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=5S9sryQ2DWw:2y5T4TCtcDI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=5S9sryQ2DWw:2y5T4TCtcDI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/5S9sryQ2DWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5182/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5182</feedburner:origLink></item>
		<item>
		<title>AZlink/lookupでたまに404 NOT FOUNDが出てましたが直しました</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/BwLzDmnAlDk/5161</link>
		<comments>http://sakuratan.biz/archives/5161#comments</comments>
		<pubDate>Sat, 19 Nov 2011 08:25:28 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AZlink]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5161</guid>
		<description><![CDATA[サーバ移転時に AZlink/lookup がバグったようで、たまに 404 NOT FOUND が出るようになってました。さっき直しましたのでどぞよろしく。 　 　　　　 　ﾉ Ｌ＿＿＿_ 　　　　　　　⌒　＼　／ ＼ 　　　　　　／　（○）　（○）＼ 　　　　 ／　　　 （__人__）　　 ＼　　 　　　 　&#124;　 　 　　　&#124;::::::&#124;　　　　　&#124;　　＜本文1行ならツイッターでやれ！！ 　... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5161">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>サーバ移転時に <a href="http://sakuratan.biz/azlink/lookup/">AZlink/lookup</a> がバグったようで、たまに 404 NOT FOUND が出るようになってました。さっき直しましたのでどぞよろしく。</p>
<div class="AA">
　 　　　　 　ﾉ Ｌ＿＿＿_<br />
　　　　　　　⌒　＼　／ ＼<br />
　　　　　　／　（○）　（○）＼<br />
　　　　 ／　　　 （__人__）　　 ＼　　<br />
　　　 　|　 　 　　　|::::::|　　　　　|　　＜本文1行ならツイッターでやれ！！<br />
　　　　 ＼ 　 　 　 l;;;;;;l　　 　／l!| !<br />
　　　 　／　　　　　`ｰ&#8217;　 　　＼ |i<br />
　　　／　　　　　　　　　　ヽ !l　ヽi<br />
　　 （　　 丶- 、　　　　　　 しＥ　|そ　　ドンッ！！<br />
　　　　`ー､＿ﾉ 　 　 　 ∑　l､Ｅ ﾉ　<<br />
　　　　　　　　　　　　　　　ﾚY^Ｖ^ヽｌ
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=BwLzDmnAlDk:CJ3F8W1uYjA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=BwLzDmnAlDk:CJ3F8W1uYjA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=BwLzDmnAlDk:CJ3F8W1uYjA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=BwLzDmnAlDk:CJ3F8W1uYjA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=BwLzDmnAlDk:CJ3F8W1uYjA:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/BwLzDmnAlDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5161/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5161</feedburner:origLink></item>
		<item>
		<title>Pythonのターミナルに出力する際に文字コード関係のエラーを抑制する</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/2j9J3UP9JmE/5140</link>
		<comments>http://sakuratan.biz/archives/5140#comments</comments>
		<pubDate>Mon, 14 Nov 2011 10:06:55 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[UnicodeEncodeError]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5140</guid>
		<description><![CDATA[Python 使ってると、日本語を表示する際に処理系が勝手に文字コードを変換しようとしてエラーが出て困ったりします。 こんな感じ↓のやつです。 &#62;&#62;&#62; print u'\uffff' Traceback &#40;most recent call last&#41;: &#160; File &#34;&#60;stdin&#62;&#34;, line 1, in &#60;mo... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5140">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>Python 使ってると、日本語を表示する際に処理系が勝手に文字コードを変換しようとしてエラーが出て困ったりします。<br />
こんな感じ↓のやつです。</p>
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">print</span> u<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\u</span>ffff'</span><br />
Traceback <span style="color: black;">&#40;</span>most recent call last<span style="color: black;">&#41;</span>:<br />
&nbsp; File <span style="color: #483d8b;">&quot;&lt;stdin&gt;&quot;</span><span style="color: #66cc66;">,</span> line <span style="color: #ff4500;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #66cc66;">&lt;</span>module<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #008000;">UnicodeEncodeError</span>: <span style="color: #483d8b;">'euc_jp'</span> codec can<span style="color: #483d8b;">'t encode character u'</span>\uffff<span style="color: #483d8b;">' in position 0:<br />
illegal multibyte sequence</span></div></div>
<hr class="linebreak">
<p>普段は放置してるのですがちょっと真剣に対応してみることにしました。<br />
（この手の情報欲しい人はある程度 Python 詳しい人だと思いますし）グダグダ説明するような話でも無いので細かい説明は抜きで解決方法だけ書こうと思います。</p>
<ol>
<li>以下のファイルを safe_terminal.py に保存。
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">codecs</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">def</span> find_encoding<span style="color: black;">&#40;</span>fh<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> fh.<span style="color: black;">encoding</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> fh.<span style="color: black;">encoding</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">'utf-8'</span><br />
<br />
<span style="color: #808080; font-style: italic;">#error = 'ignore'</span><br />
error <span style="color: #66cc66;">=</span> <span style="color: #483d8b;">'backslashreplace'</span><br />
<span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span> <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">codecs</span>.<span style="color: black;">getwriter</span><span style="color: black;">&#40;</span>find_encoding<span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span><span style="color: #66cc66;">,</span> error<span style="color: black;">&#41;</span><br />
<span style="color: #dc143c;">sys</span>.<span style="color: black;">stderr</span> <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">codecs</span>.<span style="color: black;">getwriter</span><span style="color: black;">&#40;</span>find_encoding<span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stderr</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stderr</span><span style="color: #66cc66;">,</span> error<span style="color: black;">&#41;</span></div></div>
</li>
<li>print 等を使うプログラムで safe_terminal.py を import する。
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> safe_terminal<br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">print</span> u<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\u</span>ffff'</span><br />
\uffff</div></div>
</li>
</ol>
<p>こんな感じで stdout / stderr に対する print や write 時に変換できない文字をバックスラッシュでエスケープするのが便利かと思います。Python に含まれるライブラリ自体を書き換える方法もありますが、サーバ何台も扱ってると面倒なのでパスって感じです。</p>
<p>変換できない文字を非表示にしたい場合は error = &#8216;ignore&#8217; に変えてください。</p>
<h3>参考にしたページ</h3>
<p><a href="http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html">PythonのUnicodeEncodeErrorを知る &#8211; HDEラボ</a><br />
<a href="http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html">Python でUTF-8, shift_jis, euc_jpなど日本語を使う方法</a></p>
<p>あじゃじゃしたーw</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2j9J3UP9JmE:62UuM0UehkE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2j9J3UP9JmE:62UuM0UehkE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2j9J3UP9JmE:62UuM0UehkE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=2j9J3UP9JmE:62UuM0UehkE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=2j9J3UP9JmE:62UuM0UehkE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/2j9J3UP9JmE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5140/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5140</feedburner:origLink></item>
		<item>
		<title>アマゾンで『なか見！検索』できる年賀状素材（2012年版）を10冊ほどピックアップしてみました</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/VO0ty0plvBM/5117</link>
		<comments>http://sakuratan.biz/archives/5117#comments</comments>
		<pubDate>Mon, 07 Nov 2011 09:01:36 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[年賀状]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5117</guid>
		<description><![CDATA[そろそろ年賀状のシーズンすねー。マジめんどくさいす。 家は毎年キャノンの素材サイトで年賀状素材をあさってるのですが、夏ごろにプリンタがぶっ壊れたんでどうしようかとお悩み中です。 とりあえずプリンタを買わないとあかんのですが、ついでに素材集を買うのも良いかなーと思いまして、アマゾンで『なか見！検索』できる年賀状素材を10冊ほどピックアップしてみました。 個人的にははやわざ年賀状2012 (インプレス... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5117">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>そろそろ年賀状のシーズンすねー。マジめんどくさいす。</p>
<p>家は毎年キャノンの素材サイトで年賀状素材をあさってるのですが、夏ごろにプリンタがぶっ壊れたんでどうしようかとお悩み中です。</p>
<p>とりあえずプリンタを買わないとあかんのですが、ついでに素材集を買うのも良いかなーと思いまして、アマゾンで『なか見！検索』できる年賀状素材を10冊ほどピックアップしてみました。</p>
<p>個人的には<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330586/sakuratan05-22/ref=nosim/" target="_blank">はやわざ年賀状2012 (インプレスムック)</a>か<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330551/sakuratan05-22/ref=nosim/" target="_blank">あでやか年賀状2012 (インプレスムック)</a>がえー感じだと思いますが、アマゾンで『なか見！検索』してもらった方が早いと思いますｗ</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330608/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61ZUywDMsNL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="年賀状CD-ROM2012 (インプレスムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330608/sakuratan05-22/ref=nosim/" target="_blank">年賀状CD-ROM2012 (インプレスムック)</a><br />
超オーソドックスな年賀状素材集です。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330594/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61DhOyWTryL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="大人かわいいデジカメ年賀状2012 (インプレスムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330594/sakuratan05-22/ref=nosim/" target="_blank">大人かわいいデジカメ年賀状2012 (インプレスムック)</a><br />
写真フレームみたいな素材が多かったです。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330543/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51n4WBBkEfL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="キラリ☆と輝くおしゃれな年賀状2012 (インプレスムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330543/sakuratan05-22/ref=nosim/" target="_blank">キラリ☆と輝くおしゃれな年賀状2012 (インプレスムック)</a><br />
水彩画っぽい年賀状が多いです。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684182/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/612AgJYFYwL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="おしゃれ年賀状2012 (宝島MOOK)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684182/sakuratan05-22/ref=nosim/" target="_blank">おしゃれ年賀状2012 (宝島MOOK)</a><br />
グロくない犬カレー風素材ですたｗ</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844362305/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61Ds1IFPIVL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="デザイナーズ年賀状CD-ROM2012 (インプレスムック エムディエヌ・ムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844362305/sakuratan05-22/ref=nosim/" target="_blank">デザイナーズ年賀状CD-ROM2012 (インプレスムック エムディエヌ・ムック)</a><br />
カラフル折紙年賀状、切り絵年賀状等、デザインが凝ったのが多いです。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684166/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61lpPZeqGLL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="世界一簡単にできる年賀状2012 (宝島MOOK)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684166/sakuratan05-22/ref=nosim/" target="_blank">世界一簡単にできる年賀状2012 (宝島MOOK)</a><br />
キャノンの年賀状素材集にあるような感じの多数収録ですた(´･ω･｀)</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684204/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61jo9EkF16L._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="上撰美麗年賀状 和 2012 (宝島MOOK)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4796684204/sakuratan05-22/ref=nosim/" target="_blank">上撰美麗年賀状 和 2012 (宝島MOOK)</a><br />
ピカピカテカテカ、いかにもデザイナーが作ったって感じで。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330586/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/610zeUeUoaL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="はやわざ年賀状2012 (インプレスムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330586/sakuratan05-22/ref=nosim/" target="_blank">はやわざ年賀状2012 (インプレスムック)</a><br />
値段も安くてバランス良い感じの素材集です。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4816351191/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61vL7f%2Bt9qL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="2012年版 年賀状データ集pack PREMIUM" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4816351191/sakuratan05-22/ref=nosim/" target="_blank">2012年版 年賀状データ集pack PREMIUM</a><br />
文字入れしやすい感じの素材集。</p>
<hr class="linebreak">
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330551/sakuratan05-22/ref=nosim/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/614jiJannOL._PIsitb-sticker-arrow-big,TopRight,35,-76_OU09_.jpg" alt="あでやか年賀状2012 (インプレスムック)" /></a><br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330551/sakuratan05-22/ref=nosim/" target="_blank">あでやか年賀状2012 (インプレスムック)</a><br />
和風です。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=VO0ty0plvBM:IiP-sZRMs_g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=VO0ty0plvBM:IiP-sZRMs_g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=VO0ty0plvBM:IiP-sZRMs_g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=VO0ty0plvBM:IiP-sZRMs_g:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=VO0ty0plvBM:IiP-sZRMs_g:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/VO0ty0plvBM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5117/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5117</feedburner:origLink></item>
		<item>
		<title>大方の読者の予想どおりAZlink-TinyWidgetがバグってたのでv1.0.3になりました</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/tXXOr5Vp3Lk/5109</link>
		<comments>http://sakuratan.biz/archives/5109#comments</comments>
		<pubDate>Mon, 31 Oct 2011 08:47:39 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AZlink]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5109</guid>
		<description><![CDATA[先ほどブログでリリース告知した sakuratan/AZlink-TinyWidget ですが、早速というか予想通りというか、バグってましたので直しました。古いのは変数を typo してて自動更新がちゃんと動きませんorz github にバージョン1.0.3をうpってます。ここから新しい版のソースをダウンロードしてファイルを上書きしてください。（ファイルを上書きしたらバグは直ります。） 　　　 ... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5109">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>先ほどブログでリリース告知した <a href="https://github.com/sakuratan/AZlink-TinyWidget">sakuratan/AZlink-TinyWidget</a> ですが、早速というか予想通りというか、バグってましたので直しました。古いのは変数を typo してて<b>自動更新がちゃんと動きません</b>orz</p>
<p>github にバージョン1.0.3をうpってます。<a href="https://github.com/sakuratan/AZlink-TinyWidget/downloads">ここ</a>から新しい版のソースをダウンロードしてファイルを上書きしてください。（ファイルを上書きしたらバグは直ります。）</p>
<div class="AA">
　　　 　　(~)<br />
　　　 γ´⌒｀ヽ<br />
　 　　 {i:i:i:i:i:i:i:i:}<br />
　　　 （　´・ω・）　ごめんね、ごめんね<br />
　　 　 (:::O┬O<br />
　　◎-ヽJ┴◎　ｷｺｷｺ
</div>
<p>P.S.<br />
とかなんとか言ってる間にバージョン1.0.4になってしまいました。<br />
ソース公開してるのでこの辺はこんな感じでおながいします。</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=tXXOr5Vp3Lk:hn6BYbjVnzE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=tXXOr5Vp3Lk:hn6BYbjVnzE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=tXXOr5Vp3Lk:hn6BYbjVnzE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=tXXOr5Vp3Lk:hn6BYbjVnzE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=tXXOr5Vp3Lk:hn6BYbjVnzE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/tXXOr5Vp3Lk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5109/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5109</feedburner:origLink></item>
		<item>
		<title>AZlink/Widgetの停止／オープンソース版AZlink-TinyWidgetの公開</title>
		<link>http://feedproxy.google.com/~r/sakuratan/HTqh/~3/AH4HbpVAjEA/5087</link>
		<comments>http://sakuratan.biz/archives/5087#comments</comments>
		<pubDate>Mon, 31 Oct 2011 06:25:42 +0000</pubDate>
		<dc:creator>さくら</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AZlink]]></category>

		<guid isPermaLink="false">http://sakuratan.biz/?p=5087</guid>
		<description><![CDATA[前々から告知してますが、もうちょいしたら AZlink/Widget を止めます。 まだ使われてる方がいるようですが消えますのであしからず、あしからず。 ソースくれって方が何人かいましたので、AZlink/Widget のオープンソース版として AZlink-TinyWidget を公開しました。 github に置いてます。MIT ライセンスです。 sakuratan/AZlink-TinyWi... <div style="margin-top:1ex"><a href="http://sakuratan.biz/archives/5087">(続きを読む)</a></div>]]></description>
			<content:encoded><![CDATA[<p>前々から告知してますが、もうちょいしたら AZlink/Widget を止めます。<br />
まだ使われてる方がいるようですが消えますのであしからず、あしからず。</p>
<p>ソースくれって方が何人かいましたので、AZlink/Widget のオープンソース版として AZlink-TinyWidget を公開しました。<br />
github に置いてます。MIT ライセンスです。<br />
<a href="https://github.com/sakuratan/AZlink-TinyWidget">sakuratan/AZlink-TinyWidget &#8211; GitHub</a></p>
<p>ダウンロードは <a href="https://github.com/sakuratan/AZlink-TinyWidget/downloads">Downloads for sakuratan&#8217;s AZlink-TinyWidget &#8211; GitHub</a> からできます。<br />
ブログ書くの面倒だったので昨日の夜中に Twitter で先に告知したのですが、そん時からバージョン上がってます。<br />
バージョン1.0.1をインスコされた方はバージョン1.0.2に上げてください。<br />
1.0.1には割としょうもないバグがありましたのでアーカイブも削除しました。</p>
<hr class="linebreak">
<p>AZlink/Widget と AZlink-TinyWidget の主な違いは↓みたいな感じです。</p>
<ul>
<li>node 指定しかできません。人気の商品とかのブログパーツのみの表示となります。機能的には AZlink/Widget (embed) と同じです。</li>
<li>JSONP じゃなくて JSON で実装しています。ほとんどの人は他人向けにウェブサービスで提供したい訳じゃないと思いますので、ドメイン越しでブログパーツ表示できないようにしました。</li>
</ul>
<p>グループサイトを持ってる人とかは JSONP に対応してる方が便利かもしれませんのでおいおいサポートしようと思ってますが、停止前にリリースしときたかったのでとりあえずこれでおながいします。</p>
<hr class="linebreak">
<p>ちなみに AZlink-TinyWidget のサーバサイドスクリプトは PHP になってます。<br />
GAE が Python なんで GAE 固有の部分を書き換えてリリースしても良かったのですが、Python のウェブアプリとか要らん人がほとんどだろうと思いまして PHP にしました。要はサーバ側はまったく別物です。</p>
<p>ユーザーさんの中にはかなりアクセスの多いサイトもありましたのでそれなりに高速に動くように作っているつもりですが、どうなることでしょうw</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=AH4HbpVAjEA:5YMOlKEevp0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=AH4HbpVAjEA:5YMOlKEevp0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=AH4HbpVAjEA:5YMOlKEevp0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=AH4HbpVAjEA:5YMOlKEevp0:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?i=AH4HbpVAjEA:5YMOlKEevp0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/sakuratan/HTqh?a=AH4HbpVAjEA:5YMOlKEevp0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/sakuratan/HTqh?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/sakuratan/HTqh/~4/AH4HbpVAjEA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sakuratan.biz/archives/5087/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://sakuratan.biz/archives/5087</feedburner:origLink></item>
	</channel>
</rss>
