広告

検索

RSS RSSフィード

カレンダー

2018年12月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

最新のコメント

リンク

Rocket.Chatを0.59.3から0.60.1にアップグレード

投稿者:yasu 更新日時:2017年12月29日 14時40分13秒
カテゴリ自宅サーバー
タグ

自宅サーバに構築したRocket.Chat 0.59.3を0.60.1にアップグレードしたら、サービスが起動しませんでした。

ログ(/var/log/messages)を見てみると、下記ログが出力されていました。

/opt/Rocket.Chat/programs/server/boot.js:50
const { pause } = require("./debug.js");
^
SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object. (/opt/Rocket.Chat/main.js:4:1)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
rocketchat.service: main process exited, code=exited, status=1/FAILURE
Unit rocketchat.service entered failed state.
rocketchat.service failed.

今日(2018/01/03)の昼に公式サイトを見たら、nodejsのバージョンを8.9.3にアップグレードするよう記載が修正されていました。

Rocket.Chat 0.60.0からはnodejsのバージョンを8.8.1にする必要があるとの事。
https://github.com/RocketChat/Rocket.Chat/issues/9232

早速Rocket.ChatをインストールしているCentOS 7のnodejsをアップグレードします。

# n 8.9.3

バージョンが8.9.3になっていることを確認します。

# node -v
# v8.9.3

あとは公式の手順に従ってRocket.Chatをインストールしていきますが、yasuの自宅サーバのRocket.Chatはsystemctlでサービス化しているのでsystemctlコマンドでRocket.Chatサービスを停止します。

# systemctl stop rocketchat

前バージョンのファイル一式をバックアップしておきます。

# cd /opt
# mv Rocket.Chat Rocket.Chat.0.59.3

0.60.1のファイル一式を展開します。

# tar zxvf rocket.chat-0.60.1.tar

フォルダ名を変更します。

# mv bundle Rocket.Chat

必要なパッケージをインストールします。

# cd Rocket.Chat/programs/server
# npm install

Rocket.Chatのサービスを起動します。

# systemctl start rocketchat

無事Rocket.Chatのバージョンを0.60.1にアップグレードできました。

CentOS7でキーボード配列をUSに変更

投稿者:yasu 更新日時:2017年5月26日 16時06分10秒
カテゴリCentOS, 自宅サーバー
タグ

仮想サーバにCentOS 7をインストールした際、キー配列をJISのまま実施したので、インストール終了後コマンドでキー配列をUSに変更したけど、忘れちゃうのでメモ。

# localectl set-keymap us

これで/etc/vconsole.confの内容もUSキー配列に変わり、OS再起動してもキー配列がUSのままになる。

録画用PCが壊れた!?

投稿者:yasu 更新日時:2015年3月26日 0時27分02秒
カテゴリPT2, 自宅サーバー
タグ

あれ?
録画用PCに保存されてる番組エンコードしようとしたところ、録画PCの電源が落ちてる事にさっき気がついた。
昨日の夜までは動いていたので、夜中もしくは今日の日中電源落ちた??
しょうがないな〜と思って電源ボタン押しても電源入らず・・・。

がーん!!
録画PC壊れた!?
マジかよ。
軒並み最終回を迎えるこの時期に何で壊れるかな。

怪しいのは電源かマザーだよな。
電源はS70/FL用の電源が転がってたので、念のために録画用PC組み立ての時に買ったPCケース「SilverStone SST-SG06」に標準搭載されていた電源外して、S70/FLの電源付けたところPCに電源入った。
マザーは無事っぽかった。
緊急でAmazonからSFXサイズの電源を購入。

明日電源届くので急いで取り替えないと。
今日録画予定の番組は残念ながらおじゃんということで orz

iモード.netサービス終了に伴うimoten停止

投稿者:yasu 更新日時:2015年3月2日 22時48分15秒
カテゴリiPhone/iPod touch/iPad, OS X, 自宅サーバー
タグ

iモード.netのサービスが2015年2月末に終了しました。
これに伴い以前OS X Serverに設定していたimotenのサービスを止めました。

imotenサービス停止

sudo /sbin/SystemStarter stop imoten

OS起動時imotenサービス自動起動設定削除

sudo rm -fr /Library/StartupItems/imoten

imotenアプリケーション削除

sudo rm -fr /Applications/imoten

imoten本当にお世話になりました。

FreeNAS 9.2.1.9から9.3にアップグレードしたらiSCSIサービスが起動しなくなった[いきなり解決編]

投稿者:yasu 更新日時:2014年12月12日 23時04分49秒
カテゴリFreeNAS, 自宅サーバー
タグ

昨日自宅XenServer用iSCSIのFreeNASをバージョン9.2.1.9から9.3にアップグレードしたらiSCSIサービスが起動しなくなって困ったんだけど
今日解決したからメモ。

FreeNASを9.3にアップグレード後、iSCSIのサービスを起動しようとしても起動ず、/var/log/messagesを確認したら、下記ログが出力されていた。

Dec 12 01:46:12 iscsi notifier: File "/usr/local/libexec/nas/generate_ctl_conf.py", line 64
Dec 12 01:46:12 iscsi notifier: elif " " initiator.iscsi_target_initiator_auth_network:
Dec 12 01:46:12 iscsi notifier: ^
Dec 12 01:46:12 iscsi notifier: SyntaxError: invalid syntax
Dec 12 01:46:12 iscsi notifier: ctld not running? (check /var/run/ctld.pid).
Dec 12 01:46:12 iscsi notifier: ctld not running? (check /var/run/ctld.pid).
Dec 12 01:46:12 iscsi root: /etc/rc.d/ctld: WARNING: /etc/ctl.conf is not readable.
Dec 12 01:46:12 iscsi notifier: /etc/rc.d/ctld: WARNING: /etc/ctl.conf is not readable.
Dec 12 01:46:12 iscsi root: /etc/rc.d/ctld: WARNING: failed precmd routine for ctld
Dec 12 01:46:12 iscsi notifier: /etc/rc.d/ctld: WARNING: failed precmd routine for ctld

昨日はわからず放置してたんだけど、エラーメッセージに記載されている
/usr/local/libexec/nas/generate_ctl_conf.py ファイルの64行目がシンタックスエラーって書いてあったので
viエディタで/usr/local/libexec/nas/generate_ctl_conf.pyを開いて64行目を以下の様に修正してみた。

変更前:elif " " initiator.iscsi_target_initiator_auth_network:
変更後:elif " " in initiator.iscsi_target_initiator_auth_network:

※elif " "の後ろにinを追加

するとどうでしょう。
iSCSIのサービスが起動するようになりましたよ。
わーいわーい。

無事XenServerの仮想マシンが起動できるようになりました。

OS X Server メールのプッシュ通知について

投稿者:yasu 更新日時:2014年5月31日 12時10分33秒
カテゴリOS X, 自宅サーバー
タグ

以前Mac OS X Lion Serverのメールサーバとプッシュ通知の設定をして使っている中でプッシュ通知がこない場合があるというのを記事にした事があるのですが、OS X Serverで使っているメールサーバのメールアカウントはサブ用のメールなので、その後特に調査もせず「まあ自分でこまめに受信すればいいよね」的な感じで放置していたのですが、昨日私の当時の記事にとっとこさんなる方からコメントをいただきました。
なんでもメールのプッシュ通知をしているデーモンを定期的に再起動してあげる事で常にプッシュされるというではありませんか!!
Mac OS X Mavericks Server のメールサーバで正しくPush通知が送られない問題について。 - とっとこのサーバ日記

それならとyasuも試してみました。
とっとこさんは自作perlを作成され一度だけperlプログラムを実行することでプッシュ通知デーモンの定期killをされていましたが、yasuはcron設定して明示的に実行する事なく自動実行できるようにしました。
当時Lion Serverでメールサーバの構築をしましたが、その後Mountain Lion ServerにアップグレードしているのでMountain Lion Serverでの設定備忘録になります。

やった事は以下の2つ。
1.Mountain Lion Serverのrootユーザを有効にする
OS X Mountain Lion: ルートユーザを有効にする/無効にする
リンクがなくなってもいいように手順を引用しておきます。

1.アップルメニュー>「システム環境設定」と選択し、「ユーザとグループ」をクリックします。
2.カギのアイコンをクリックしてロック解除してから、管理者名およびパスワードを入力します。
3.「ネットワークアカウントサーバ」セクションで、「接続」または「編集」をクリックします。
4.「ディレクトリユーティリティを開く」をクリックします。
5.カギのアイコンをクリックしてロックを解除してから、管理者名およびパスワードを入力します。
6.「編集」>「ルートユーザを有効にする」と選択してから、「パスワード」および「確認」フィールドにルート・ユーザ・パスワードを入力します。

2.cronの設定
rootユーザのcronにプッシュデーモンをkill(killすると勝手にプッシュデーモンが再起動するのでkillするだけでいいらしい)するコマンドを書きます。
とりあえず10分毎に実行される様にします。

macmini:~ macmini$ sudo crontab -e
Password: ログインユーザのパスワード
*/10 * * * * kill `ps aux|grep push_notify|grep -v "grep"|awk '{print $2}'`
保存してviエディタを終了します

これだけです。

あとは/var/log/system.logをみて30分毎にプッシュデーモンがkillされて再起動されていることを確認します。

May 31 11:30:01 macmini.sasaki.jpn.com push_notify[70303]: Opening connection to apn feedback server feedback.push.apple.com for topic com.apple.mail.XServer.xxx6xxxx-71xx-4xxx-af95-479xxxxxxxx
May 31 11:30:02 macmini.sasaki.jpn.com push_notify[70303]: Disconnected from apn feedback server feedback.push.apple.com for topic com.apple.mail.XServer.xxx6xxxx-71xx-4xxx-af95-4790xxxxxxxx

プッシュデーモン定期再起動をやってみて、プッシュ通知が常に届くようになった気がします。

とっとこさん、貴重な情報提供ありがとうございました!!

仮想環境用にPRIMERGY TX100 S3購入

投稿者:yasu 更新日時:2013年11月17日 0時42分40秒
カテゴリ自宅サーバー
タグ

お仕事柄、保守しているシステムを複数バージョンのInternet Explorerで動作確認する必要があるので、以前インストールマニアックス3の大会でもらったサーバNEC Express 5800/S70 FL(Core2Duo 2.8GHz、8GB)にHyper-V Server 2012をインストール。
仮想マシンに
 Windows XP Internet Explorer 6
 Windows XP Internet Explorer 7
 Windows XP Internet Explorer 8
 Windows Vista Internet Explorer 7
 Windows Vista Internet Explorer 8
 Windows Vista Internet Explorer 9
 Windows 7 Internet Explorer 8
 Windows 7 Internet Explorer 9
 Windows 7 Internet Explorer 10
 Windows 7 Internet Explorer 11
 Windows 8 Internet Explorer 10
 Windows 8.1 Internet Explorer 11
を作りました。

Windows XPにはメモリ1GBをVista以降は2GBを割り当てたのですが、仮想マシンを3つ起動して平行操作しているともうサーバ機がイッパイイッパイでまともに動かないので、富士通のPRIMARGY TX100 S3(厳密にはPRIMARGY TX100 S3pらしいですが)を購入してこちらに仮想環境を移したいと思います。
【ぷらっとオンライン】富士通 PRIMERGY TX100 S3(OSレス/PentiumG640(2.80GHz)/2GBx1/250GBx1/DVD-ROM) (PYT10P221DS)|通販

HDDは家に1TBのディスクがたくさん余っているので、これを使い回す予定。

以前購入して音も静かで気に入っているNEC Express 5800 GT110dの後継機GT110eとか欲しかったんだけどNTT-X Store見たら2万円台のは売り切れていて、CPUがXeonのやつは16万もするから却下。
HPのML110 G7は値段は安いけどファン音がうるさいということでこれも却下。
消去法って訳じゃないけど、今まで買ったことのない富士通製サーバPRIMARGY TX100 S3になりました。

wikiで換装可能なCPUとかメモリもチェックして、とりあえずメモリ8GB×2も購入しました。
SanMax SMD-16G28ECP-16K-D DDR3-1600 16GB(8GB*2枚組)SET CL11 U-DIMM ECC Micron/JEDEC サーマルセンサ搭載 (SanMax Technologies) - ark (アーク)

本当はCPUをXeon E3-1230 v2に換装してメモリも32GBにしたかったんだけど、今月はNexus 5、iPad Air、iPad mini Retinaも買っちゃったから、CPUとメモリ半分はお預け。
とりあえずPentium G640とメモリ16GBで使ってみることにします。

imotenを複数起動して複数のiモードメールを送受信してみた

投稿者:yasu 更新日時:2012年7月25日 22時24分20秒
カテゴリimoten, OS X, 自宅サーバー
タグ

Docomo SIMを挿し、imotenでiモードメールもリアルタイムで受信できるようになったSIMフリーiPhoneですが、相方からも「Androidはタッチ精度が悪くてメールが打ちにくいからiPhoneでiモードメールが出来るようにして欲しい」と言われたのでimotenの複数起動を試してみました。

ちなみにimotenは複数起動を推奨はしていないようで保証の限りではありませんので自己責任でお願いします。

ターミナルを起動してimoten2をインストールします。

# /Applicationsの下にあるimotenをimoten2という名前でコピーします
macmini:~ macmini$ sudo cp -a /Applications/imoten /Applications/imoten2

# /Applications/imoten2/binの下にあるimotenをimoten2にリネームします
macmini:~ macmini$ sudo mv /Applications/imoten2/bin/imoten /Applications/imoten2/bin/imoten2

# スタートアップの設定をします
macmini:~ macmini$ sudo mkdir /Library/StartupItems/imoten2
macmini:~ macmini$ sudo cp /Applications/imoten2/bin/mac_startup/* /Library/StartupItems/imoten2/
macmini:~ macmini$ sudo chmod -R 755 /Library/StartupItems/imoten2
macmini:~ macmini$ sudo vi /Library/StartupItems/imoten2/StartupParameters.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Description</key>
        <string>imoten2</string> # imotenからimoten2に変更
        <key>OrderPreference</key>
        <string>None</string>
        <key>Provides</key>
        <array>
                <string>imoten2</string> # imotenからimoten2に変更
        </array>
        <key>Uses</key>
        <array>
                <string>Network</string>
                <string>Resolver</string>
        </array>
        </dict>
</plist>

# 保存してviエディタを終了します

macmini:~ macmini$ sudo mv /Library/StartupItems/imoten/imoten /Library/StartupItems/imoten2/imoten2
macmini:~ macmini$ sudo vi /Library/StartupItems/imoten2/imoten2

#!/bin/sh

. /etc/rc.common

##
# Startup imoten
##

StartService()
{
        ConsoleMessage "Starting imoten"
        cd /Applications/imoten2/bin # imotenからimoten2に変更
        ./imoten2 start # imotenからimoten2に変更
}

StopService()
{
        ConsoleMessage "Stopping imoten"
        cd /Applications/imoten2/bin # imotenからimoten2に変更
        ./imoten2 stop # imotenからimoten2に変更
}

RestartService()
{
        ConsoleMessage "Restarting imoten"
        cd /Applications/imoten2/bin # imotenからimoten2に変更
        ./imoten2 stop # imotenからimoten2に変更
        ./imoten2 start # imotenからimoten2に変更
}

# 保存してviエディタを終了します

imoten2用のimoten.iniの設定にあたっては下記例を想定しての設定となります。
メールサーバホスト名:mail.sasaki.jpn.com
転送用メールアドレス:docomo2@sasaki.jpn.com
転送用メールアカウント:docomo2

# /Applications/imoten2/imoten.iniを編集します
macmini:~ macmini$ sudo vi /Applications/imoten2/imoten.ini

# UTF-8で保存すること
# [#]で始まる行はコメント
# コメントアウトしない*の部分は書き換えてください

docomo.id=docomo ID
docomo.passwd=docomo IDのパスワード

smtp.server=main.sasaki.jpn.com
smtp.port=25
smtp.connecttimeout=10
smtp.timeout=30
smtp.tls=false
smtp.from=iモードメールアドレス

smtp.auth.user=docomo2
smtp.auth.passwd=転送用メールアカウントのパスワード

# POP before SMTP認証が必要な場合に指定する
#popbeforesmtp.server=*
#popbeforesmtp.user=*
#popbeforesmtp.passwd=*

# メールの題名に絵文字があった場合、[晴れ]のように置き換える
emojireplace.subject=false

# メールのボディの絵文字の置き換え方法
# [inline]の場合、絵文字をGMailの画像に置き換え、その画像をメールにインラインで添付します。
# メールはHTMLメールに変換されます。
# [link]の場合、絵文字をGMailの画像へのリンク<img src="...">に置き換えます。
# 絵文字を表示するには、メール閲覧時インターネットにつながっている必要があります。
# メールはHTMLメールに変換されます。
# [label]の場合、絵文字をはれ]の様な説明ラベルに置き換えます。
# [none]の場合、絵文字の置き換えを行いません。PCで表示すると絵文字は正しく表示されません。
# デフォルト[inline]。
emojireplace.body=inline

# 受信メールの題名の先頭に追加する
#forward.subject.prefix=[iFw]

# 送信メールの題名の先頭に追加する
#forward.sent.subject.prefix=[iSentFw]

# 送信メールを転送する場合true
#forward.sent=true

# 転送先(複数の場合は[,]区切りで指定する)
forward.to=docomo2@sasaki.jpn.com
#forward.cc=
#forward.bcc=

# Reply-toヘッダ
#forward.replyto=

# [false]の場合、From,CC,Date等のヘッダにimodeメールの情報を指定します。
# [true]の場合、From,CC,Date等のヘッダを[smtp.from]など実際の送信時の情報を指定します。
# デフォルト[true]。
forward.rewriteaddress=false

# [true]の場合、メールのボディの先頭にimodeメールのFrom,CCなどの情報を追加します。
# デフォルト[true]。
forward.headertobody=false

# imode.net の新着チェック間隔(秒)
imodenet.checkinterval=60

# imode.net のログインエラー時のリトライ間隔(秒)
imodenet.logininterval=60

# [true]の場合、imode.netでログイン時のCookieを保存して、次の起動時に使用する。
save.cookie=true

# httpクライアントのタイムアウト(秒)
http.conntimeout=30
http.sotimeout=30

# trueにするとメール送信時にログが出力されます。
mail.debug=false

# UTF-8に未対応のメーラーの場合、iso-2022-jpを指定してみてください。
# mail.encode=UTF-8

# メールの本文部分のContent-Transfer-Encodingを指定します。
# 文字化けする場合、[7bit]を指定してみてください。
#mail.contenttransferencoding=7bit

# imode.net経由で携帯メールを送信
# SMTPをListenするポート番号
sender.smtp.port=52525 # メールクライアントのSMTPサーバ設定時に指定するポート番号(imoten2のポートはimotenとは別のポートに変更します)

# SMTP認証
sender.smtp.user=imode.net経由でメールを送信する場合の認証ユーザ # メールクライアントのSMTPサーバ設定時に指定するユーザ名を入力
sender.smtp.passwd=imode.net経由でメールを送信する場合の認証パスワード

# sender.alwaysbcc=

# TLSを有効にする
sender.smtp.tls.keystore=../sasaki.jpn.com.keystore
sender.smtp.tls.keytype=JKS
sender.smtp.tls.keypasswd=keystoreファイル作成時のキーストアパスワード

# メール件名の絵文字変換
forward.subject.charconvfile=../conv/genDocomo2sb.csv
# メール本文の絵文字変換
sender.charconvfile=../conv/unicode2docomo.csv,../conv/genSb2docomo.csv
# Shift_JISからunicode変換補正を有効
sender.convertsoftbanksjis=true
# 返信時の引用削除
sender.stripiphonequote=true
# 返信時のRe:が増えない
sender.docomostylesubject=true

保存してviエディタを終了します

# imoten2を起動します
macmini:~ macmini$ sudo /sbin/SystemStarter start imoten2
Starting imoten
Starting imoten(i mode mail tensou)with test action: with test action: ...

ルータの設定変更

ルーターのNAT設定でiモードメールを送信する為にimoten.iniのsender.smtp.portに設定したポート番号(上記例だと52525)がLion Serverに変換されるようにします。

あとは相方のiPhoneも前回と同じようにメールアカウントを設定すれば完成です。
Lion Serverにimotenを2つ動かし、それぞれ別のiモードメールの送受信ができるようになりました。

OS X Lion Serverにimotenを導入してiPhoneでDocomo iモードメールを送受信する

投稿者:yasu 更新日時:2012年7月25日 1時25分17秒
カテゴリApple, imoten, iPhone/iPod touch/iPad, OS X, 自宅サーバー
タグ

前回の検討の結果、SoftBank SIMを利用した方が月々の料金は安いけど、MMSやFaceTimeよりテザリングの方が必要になることが多いyasuとしては少し料金が高くなってもDocomoの方がいいだろうということでSIMフリーiPhoneにDocomo SIMを挿して利用していきたいと思います。

そこで今回はiPhoneでDocomo iモードメールの送受信を可能にしてくれるimotenをOS X Lion Serverに導入してみたいと思いますが、SIMフリーiPhoneにDocomo SIMを挿して、かつiモードメール送受信を行う為にはいくつかの準備が必要なのでそちらもあわせて確認していきたいと思います。

SIMフリーiPhoneにDocomo SIMを挿してiモードメール送受信に必要なもの

SIMフリーiPhone

iPhoneにDocomo SIMを挿して利用する場合はSIMフリーiPhoneの購入が必要です。
なおauかSoftbankのiPhoneとDocomo携帯の2台持ちでもimotenを導入すればDocomoのiモードメールをauかSoftbankのiPhoneで送受信できるようになります。
Buy iPhone - Apple iPhone Deals, iPhone 4, iPhone 3gs & iPhone accessories - EXPANSYS 日本
2012年7月24日現在でSIMフリーiPhone 4S 16GBが53,000円程度とお買い得になってきました。

Docomo SIMカード

FOMAもしくはXiどちらでも可です。
iPhone 3GS以前はUIMカード、iPhone 4以降はminiUIMカードが必要です。
yasuはFOMAのminiUIMカードで試してみたいと思います。

iモード

Docomo iモードメールのメールアドレス(@docomo.ne.jp)取得に必要です。
SPモードはDocomoから発売されているスマートフォンしかパケット通信できないよう制御されているようです。
iモードの契約はMyDocomoからはできないので総合お問い合わせ(151)に電話して申し込むかDocomoショップに行く必要があります(月額315円税込)。

iモード.net

これを契約しないとimotenがDocomo iモードメールを送受信できません。
MyDocomoから契約可能です(月額210円税込)。

Mopera U

SIMフリーiPhoneにDocomo SIMを挿してパケット通信(Webやメール)する為に必要です。
パケット通信だけできればいいよって人はUライトプラン(月315円)を、パケット通信以外にmoperaのメールアドレスや公衆無線LANも使いたいって人はUスタンダードプラン(月525円)を契約します。
※xiの場合はUスタンダードプランしか選択肢がないようです
MyDocomoから契約可能です。

Docomo iモード対応端末

iモードのメールアドレスの初期設定やメールアドレスの変更時に必要です。
またimotenでメールを受信してもiモードセンターに蓄積したメールは自動削除されません。
720時間(30日)以内に10MBの範囲でメール受信が1,000通を越えた場合iモードセンターでメールを受信できなくなりますので、iモードセンターでメール受信ができなくなった場合はiモード対応端末でメール受信をしてiモードセンターのメールを自動削除してあげてください。
iモードご利用規則(FOMA) | サービス・機能 | NTTドコモ

Docomo iモードメール転送用メールアドレス

imotenはiモード.net経由で受信したDocomo iモードメールを別のメールアドレスに転送するものなので転送用のメールアドレスが必要です。
yasuは独自ドメイン+OS X Lion Serverに構築したメールサーバで作成したメールアカウントを利用しますが、基本的にはどんなメールアカウントでもOKです。
プッシュ通知でリアルタイムにiモードメールの受信を確認したいのであればGmailやYahoo!メールでもイイと思います。

サーバ

imotenを動かすサーバ。
yasuはOS X Lion Serverにimotenを導入しますが、imotenはJAVAで作られているのでJDKを導入すればWindowsやLinuxのレンタルサーバでもOKです。

imoten

imotenはDocomo iモードメールをimode.netを経由して、別のメールアドレスへ転送するプログラムです。

ここまでがSIMフリーiPhoneにDocomo SIMを挿してiモードメールの送受信をするのに必要なものです。
続いてimotenをOS X Lion Serverに設定していきます。

imotenの設定

ここからはOS X Lion Server上の操作になります。

yasuのOS X Lion Serverの環境ですが
OS X Lion Server バージョン:10.7.4
JAVA バージョン:1.6.0_33
で実施しています。

OS X Lion ServerはJAVAを別途インストールする必要がありますのでAppleのサイトからダウンロードしてインストールしておいてください。

下記ダウンロードページからimoten(2012年7月24日現在の最新版1.1.37)をダウンロードします。
imoten - imode.netのメールをSMTPで転送するプログラム - Google Project Hosting ←TOPページ
Downloads - imoten - imode.netのメールをSMTPで転送するプログラム - Google Project Hosting ←Downloadページ

ダウンロードしたzipファイルを解凍します。

解凍したimoten-1.1.37を /Applications に移動し、ディレクトリ名をimoten-1.1.37からimotenにリネームします。

ターミナルを起動してimotenのインストールを実施します。
なおインストール手順はimotenのサイトにも書いてありますので、基本そのままです。
Install - imoten - インストール手順 - imode.netのメールをSMTPで転送するプログラム - Google Project Hosting

インストール手順

# /Applications/imoten/conf/wrapper.confを編集します
macmini:~ macmini$ sudo vi /Applications/imoten/conf/wrapper.conf
# Java Application
wrapper.java.command=/System/Library/Frameworks/JavaVM.framework/Versions/1.6
/Commands/java
 # 表示の都合上、途中で明示的に改行しましたが実際は1行で記載してください

# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=immf.ServerMain
wrapper.app.parameter.2=immf.ServerMain # 先頭の#(シャープ)を削除してコメントを解除します

保存してviエディタを終了します

# imotenに実行権限を付与します
macmini:~ macmini$ sudo chmod +x /Applications/imoten/bin/imoten
macmini:~ macmini$ sudo chmod +x /Applications/imoten/bin/wrapper*

# imotenのスタートアップの設定を行います
macmini:~ macmini$ sudo mkdir /Library/StartupItems/imoten
macmini:~ macmini$ sudo cp /Applications/imoten/bin/mac_startup/* /Library/StartupItems/imoten/ # ここも改行されてますが実際は1行です
macmini:~ macmini$ sudo chmod -R 755 /Library/StartupItems/imoten

設定ファイル変更

続いてimotenの設定ファイルを自分の環境にあわせて変更します。
詳細はimotenディレクトリ直下にあるParameter.txtを参照してください。

imoten.iniの設定にあたっては下記例を想定しての設定となります。
メールサーバホスト名:mail.sasaki.jpn.com
メールサーバポート番号:25(TLSは未使用)
転送用メールアドレス:docomo@sasaki.jpn.com
転送用メールアカウント:docomo

# /Applications/imoten/imoten.iniを編集します
macmini:~ macmini$ sudo vi /Applications/imoten/imoten.ini

# UTF-8で保存すること
# [#]で始まる行はコメント
# コメントアウトしない*の部分は書き換えてください

docomo.id=docomo ID
docomo.passwd=docomo IDのパスワード

smtp.server=main.sasaki.jpn.com
smtp.port=25
smtp.connecttimeout=10
smtp.timeout=30
smtp.tls=false
smtp.from=iモードメールアドレス

smtp.auth.user=docomo
smtp.auth.passwd=転送用メールアカウントのパスワード

# POP before SMTP認証が必要な場合に指定する
#popbeforesmtp.server=*
#popbeforesmtp.user=*
#popbeforesmtp.passwd=*

# メールの題名に絵文字があった場合、[晴れ]のように置き換える
emojireplace.subject=false # 絵文字は絵文字のまま表示したいのでfalseに変更

# メールのボディの絵文字の置き換え方法
# [inline]の場合、絵文字をGMailの画像に置き換え、その画像をメールにインラインで添付します。
# メールはHTMLメールに変換されます。
# [link]の場合、絵文字をGMailの画像へのリンク<img src="...">に置き換えます。
# 絵文字を表示するには、メール閲覧時インターネットにつながっている必要があります。
# メールはHTMLメールに変換されます。
# [label]の場合、絵文字をはれ]の様な説明ラベルに置き換えます。
# [none]の場合、絵文字の置き換えを行いません。PCで表示すると絵文字は正しく表示されません。
# デフォルト[inline]。
emojireplace.body=inline

# 受信メールの題名の先頭に追加する
#forward.subject.prefix=[iFw] # 先頭に#をつけてコメント化

# 送信メールの題名の先頭に追加する
#forward.sent.subject.prefix=[iSentFw]

# 送信メールを転送する場合true
#forward.sent=true

# 転送先(複数の場合は[,]区切りで指定する)
forward.to=docomo@sasaki.jpn.com
#forward.cc=
#forward.bcc=

# Reply-toヘッダ
#forward.replyto=

# [false]の場合、From,CC,Date等のヘッダにimodeメールの情報を指定します。
# [true]の場合、From,CC,Date等のヘッダを[smtp.from]など実際の送信時の情報を指定します。
# デフォルト[true]。
forward.rewriteaddress=false # ヘッダにimodeメールの情報を付与したいのでfalseに変更

# [true]の場合、メールのボディの先頭にimodeメールのFrom,CCなどの情報を追加します。
# デフォルト[true]。
forward.headertobody=false # メールボディにimodeメールの情報を付与したくないのでfalseに変更

# imode.net の新着チェック間隔(秒)
imodenet.checkinterval=60 # 1分程度でよいので60秒

# imode.net のログインエラー時のリトライ間隔(秒)
imodenet.logininterval=60

# [true]の場合、imode.netでログイン時のCookieを保存して、次の起動時に使用する。
save.cookie=true

# httpクライアントのタイムアウト(秒)
http.conntimeout=30
http.sotimeout=30

# trueにするとメール送信時にログが出力されます。
mail.debug=false

# UTF-8に未対応のメーラーの場合、iso-2022-jpを指定してみてください。
# mail.encode=UTF-8

# メールの本文部分のContent-Transfer-Encodingを指定します。
# 文字化けする場合、[7bit]を指定してみてください。
#mail.contenttransferencoding=7bit

# imode.net経由で携帯メールを送信
# SMTPをListenするポート番号
sender.smtp.port=42525 # メールクライアントのSMTPサーバ設定時に指定するポート番号(先頭の#を削除してコメント解除)

# SMTP認証
sender.smtp.user=imode.net経由でメールを送信する場合の認証ユーザ # メールクライアントのSMTPサーバ設定時に指定するユーザ名を入力
sender.smtp.passwd=imode.net経由でメールを送信する場合の認証パスワード

# sender.alwaysbcc=

# TLSを有効にする
sender.smtp.tls.keystore=../sasaki.jpn.com.keystore # 先頭の#を削除してコメント解除とkeystoreファイル名を指定(keystoreファイルは後で作成します)
sender.smtp.tls.keytype=JKS # 先頭の#を削除してコメント解除
sender.smtp.tls.keypasswd=keystoreファイル作成時のキーストアパスワード # 先頭の#を削除してコメント解除とkeystoreファイル作成時のパスワード

# メール件名の絵文字変換
forward.subject.charconvfile=../conv/genDocomo2sb.csv
# メール本文の絵文字変換
sender.charconvfile=../conv/unicode2docomo.csv,../conv/genSb2docomo.csv
# Shift_JISからunicode変換補正を有効
sender.convertsoftbanksjis=true
# 返信時の引用削除
sender.stripiphonequote=true
# 返信時のRe:が増えない
sender.docomostylesubject=true

保存してviエディタを終了します

keystoreファイルを作成してTLS有効

iPhoneからiモードメールを送信する場合、imotenをSMTPサーバに見立てて送信します。
imoten.iniファイルに指定したkeystoreファイルを作成してTLSを利用します。
keystoreファイルを作成する際ターミナル上でkeytoolを使うのですが、文字コードがShift-JISじゃないと文字化けするのでkeytool実行前にターミナルの環境設定画面の[設定]-[詳細]の中にある文字エンコーディングを「日本語(Mac OS)」から「日本語(ShiftJIS)」に変更しておきます。

macmini:~ macmini$ cd /Applications/imoten
macmini:imoten macmini$ sudo keytool -genkeypair -alias sasaki.jpn.com -keyalg RSA -keysize 2048 -keystore sasaki.jpn.com.keystore -validity 3650 -v
キーストアのパスワードを入力してください: imoten.iniのsender.smtp.tls.keypasswdに指定したキーストア パスワード
新規パスワードを再入力してください: 新規パスワード
姓名を入力してください。
[Unknown]: mail.sasaki.jpn.com
組織単位名を入力してください。
[Unknown]: 何も入力せず[Enter]キーを押下
組織名を入力してください。
[Unknown]: sasaki.jpn.com
都市名または地域名を入力してください。
[Unknown]: urayasu
州名または地方名を入力してください。
[Unknown]: chiba
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: JP
CN=mail.sasaki.jpn.com, OU=Unknown, O=sasaki.jpn.com, L=urayasu, ST=chiba, C=JP でよろしいですか?
[no]: yes

3,650 日間有効な 2,048 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
ディレクトリ名: CN=mail.sasaki.jpn.com, OU=Unknown, O=sasaki.jpn.com, L=urayasu, ST=chiba, C=JP
の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください): 最初に入力したキーストア パスワードを再入力
新規パスワードを再入力してください: 最初に入力した新規パスワードを再入力
[sasaki.jpn.com.keystore を格納中]

# keystoreファイルが作成されているか確認します
macmini:imoten macmini$ ls -l sasaki.jpn.com.keystore
-rw-r--r-- 1 root staff 2240 7 24 11:07 sasaki.jpn.com.keystore ← keystoreファイルができていればOK

※変更した文字エンコーディングを元に戻しておきます。

imotenサービス起動

imotenのサービスを起動します。

macmini:imoten macmini$ sudo /sbin/SystemStarter start imoten
Starting imoten
Starting imoten(i mode mail tensou)with test action: with test action: ...

ルータの設定変更

ルーターのNAT設定でiモードメールを送信する為にimoten.iniのsender.smtp.portに設定したポート番号がLion Serverに変換されるようにします。

Lion Serverのpostfixの設定変更

yasuの環境の問題だと思うのですが、Lion Serverのpostfixにある「迷惑メールフィルタ」が有効になっているとimotenがiモード.netから受信したiモードメールをLion Server上のpostfixに転送できなかったので、迷惑メールフィルタのチェックを外しました。
※迷惑メールフィルタを外さなくてもいい方法がないかもう少し調査を継続してみたいと思います

iPhone メール設定

iPhoneにメールアカウントの設定を行います。
細かい手順は省略しますが、メールアカウントは以下のような設定になります。

名前:自分の名前
メール:docomo@sasaki.jpn.com
説明:iPhoneのメールアカウント一覧を識別するための文字列(メールアドレスと同一でいいと思います)

※iモードメール転送先のメールアカウント(yasuの場合はOS X Lion Serverに構築したメールサーバやメールアカウント)を設定します
受信メールサーバ
 ホスト名:mail.sasaki.jpn.com
 ユーザ名:docomo
 パスワード:docomoアカウントのパスワード
 SSLを使用:オン
 認証:MD5チャレンジ応答
 サーバポート:IMAPSのポート番号

送信メールサーバ
 ホスト名:mail.sasaki.jpn.com
 ユーザ名:imoten.iniのsender.smtp.userに設定したユーザ名
 パスワード:imoten.iniのsender.smtp.passwdに設定したパスワード
 SSLを使用:オン
 認証:パスワード
 サーバポート:imoten.iniのsender.smtp.portに設定したポート番号

SIMフリーiPhoneにDocomo SIMを挿してパケット通信

SIMフリーiPhoneにDocomo SIMを挿してパケット通信するにはAPNの設定が必要です。
iPhoneの[設定]-[一般]-[ネットワーク]-[モバイルデータ通信ネットワーク]とタッチします。
モバイルデータ通信のAPNとインターネット共有のAPNにmopera.net(パケ・ホーダイプランの場合)と入力します。
これでSIMフリーiPhoneにDocomo SIMを挿してパケット通信ができるようになります。

なお128kバイト通信やデータ定額プランの接続方法は下記ページを参考にしてみてください。
01.ドコモiPhone用の通信設定は? - docomoでiPhoneを使おう!

iモードメール送受信の確認

最後にiモードメールの送受信の確認をします。
まずはGmailからDocomoにメールを送信して、iモードメールの受信の確認をしてみます。

imotenが60秒毎(時間は設定で変更可)にiモード.netにメールチェックして、メールがあると自分のアカウントにメールを転送してくれます。
Lion Serverのメールサーバはメールを受信するとリアルタイムでプッシュ通知してくれるので、この通りプッシュ通知が届きます。

メールを開いてみると、GmailからDocomoに送信したメールがiPhoneで読めます。

今度はDocomoからGmailに返信して、iモードメールの送信を確認します。

Gmail側でメールを確認するとDocomoのメールアドレスからメールが送信されてきているのが確認できます。

駆け足で設定してきましたが、OS X Lion Serverにimotenを設定してiPhoneでiモードメールの送受信ができるようになりました。
メール受信はプッシュ通知でほぼリアルタイム通知です。
テザリングも携帯メールもできる最強のiPhoneになったのではないでしょうか。

imotenの設定がうまくいかない人はサイトに導入手順やimoten.iniの設定サンプルがありますので、よく読んで設定してみてください。

Mountain Lion Serverがでる前に記事を公開できて本当によかった〜。
次回のOS X Server設定シリーズはMountain Lion Serverになるかもしれません。

■参考サイト
たぶんホント
docomoでiPhoneを使おう!

Lion Serverに設定したAppleプッシュ通知 新しいAppleIDにしてもダメでした

投稿者:yasu 更新日時:2012年7月21日 15時32分24秒
カテゴリApple, iPhone/iPod touch/iPad, OS X, 自宅サーバー
タグ

Lion Serverに設定したAppleプッシュ通知ですが、メールを受信しても時々iPhoneにプッシュ通知がこない事があり、新しいAppleIDを取得してしばらく様子をみていたのですが、やっぱりプッシュ通知がこない時がありました。
Lion Serverに設定したAppleプッシュ通知 メールを受信してもiPhoneにプッシュ通知がこない時がある » sa-sa-ki.jpのblog
Lion Serverに設定したAppleプッシュ通知 新しいApple IDを取得 » sa-sa-ki.jpのblog

Lion Serverの問題なのか、Appleプッシュ通知サービス側の問題なのかわかりませんが、正直お手上げです。
Lion Serverの問題なのであれば今月発売予定のMountain Lion Serverにさっさと移行しようと思うのですが、Appleプッシュ通知サービス側の問題だとするとどうにもなりませんね。