nDiki : SMTP

2006年10月1日 (日)

OP25B 回避のために PortForwarder で port fowarding

本日より ISP の OP25B が本格的に開始する。これにより契約しているホスティングサービスの SMTP サーバに自宅から接続できなくなる(このホスティングサービスではサブミッションポート (587 番)の提供は無し)。

自宅の Windows BOX からのメール送信ができなくなると困るので、 PortForwarder を使って SSH port forwarding して対応することにした。

設定

まず PortForwarder 2.7.0 をダウンロードしてきて展開。

次に設定ファイルを作成する。ファイル名 config というテキストファイルを作成し、

 Host mailserver
        User username
        Protocol 1
        HostName ホスティングサーバ名
        LocalForward 8025 メールサーバ名:25
        LocalForward 8110 メールサーバ名:110

と書いて保存。

ホスティングサーバのメールサービスは POP before SMTP なので、25 番ポートと 110 番ポートを両方とも転送して、同じホストから接続しているように見せる必要がある。

次にこのファイルと同じディレクトリに SSH の鍵を置く (PortForwarder 1 時代に作った鍵があるので、今回は Protocol 1 を指定してこれを使うようにした)。

あとは PortForwarder を起動し、この config ファイルを指定して接続。

接続ができたら MUA を起動して POP、SMTP をそれぞれ localhost:8110、localhost:8025 を使うように設定を変更。

これでまずは OP25B を回避。 ちょっと手間が増えたがいたしかないところ。

スポンサード リンク
[ 10月1日全て ]

2007年8月8日 (水)

メールボックスを Gmail に集約

Gmail2004年12月に招待してもらって登録していたのだが、アカウントは Google の各種サービス用として使っていたものの、メールボックスはほぼ全く使用していなかった。 なんだかんだいって抵抗感があった訳で。

しかし、

  • ホスティングサービスで利用しているメインのメールボックスが1アカウント10MBで、数日 fetch できないと溢れてしまう。PHS を解約した今、帰省の時などは fetch できない状況になりヤバイ。
  • パケ・ホーダイにしたのを機にモバイル Gmail で外出先でも仕事関連のメールをチェックできるようにしたい。

ということからメールボックス Gmail に集約してしまうことにした。

移行作業

やった事は以下。

アカウントのパスワードを変更

pwgen で自動生成したパスワードを使っていたのだが、今後入力する機会が増えるので覚えられるものに変更。

メーラ (Mew) のバージョンアップ

普段使っている MUA である Mew のバージョンを 4 から 5 にバージョンアップ (Debian sidDebian パッケージが上がった時に、ホールドしたままだった)。

もれなく k-/ が Namazu から Hyper Estraier になっていた。

Gmail に普段使っているメールアドレスを登録

Gmail から直接」および「GmailSMTP サーバ経由」で普段使っているメールアドレスを使って送信できるようにアカウントを登録。

Web の設定画面で追加するとメールで確認コードが送られてくるので、それを使って有効化する。

Gmail から POP3 でメールをローカルに取れるように設定

Gmail 側で POP を有効にした後、fetchmail で fetch できるようにする。

 defaults
   no mimedecode
   pass8bits

 poll pop.gmail.com
   protocol pop3
      user xxx@gmail.com
      password xxx
      ssl
      fetchall

SSL を使用して fetch できるようしておく。

設定を始めるまでは「POP3 で Gmail アカウント使うのどうよ」と思っていたけれど、SSL 経由なのでちょっと安心した。

POP 後 Gmail 側ではアーカイブに移動するようしておく。

Mew から GmailSMTP サーバ経由でメールを送れるようにする

今まで SMTP over SSH でホスティングサービス経由等で送っていたものを、Gmail に TARTTLS を使って送れるように設定する。

mew-config-alist の中で

 ("default"
  ("user" . "naney")
  ("mail-domain"     . "naney.org")
  ("smtp-server"     . "smtp.gmail.com")
  ("smtp-user"       . "xxx@gmail.com")
  ("smtp-ssl" . t))

送信メールアドレスは user と mail-domain で設定。Gmail のアカウント名は smtp-user で設定。 smtp-ssl も t にしておく。

その他メールアドレス毎に経路を変えて送ったりしていたのだが全部同様の設定にして Gmail 経由にする。

Mew から自分宛のコピーを Dcc から Fcc に変更

今まで Dcc で自分宛にコピーを送って管理していたのだが、Gmail では自分が SMTP 経由で送信したメールは POP できないらしい。 げっ。

ということで Fcc を

 (setq mew-fcc "+sent")

から

 (setq mew-fcc "+sent,+inbox")

に変更して、sent/ 以外に inbox/ にも複製を作るようにして対処。

メールボックスから Gmail へ転送設定

普段使っている各メールアドレスのメールボックスから、全て Gmail へ転送するように設定。 たまっていた分は今まで通りの方法で fetch してクリアしておく。

Google ツールバーの設定を変更

Gmail カスタムボタンを表示するように変更。 ツールバーから Gmail にアクセスできるようにしておく。

Google Desktop (Linux 版)の設定を変更

Gmail アカウントを登録。 Google デスクトップGmail 上のメール検索できるようにしておく。

iモードから、モバイル Gmailへアクセスしてみる

試しに使ってみる。

モバイル Gmail から送られるメールの From: は Gmail でデフォルト設定したもので固定らしい。 ちょっと融通が効かない。

ま、プライベートのメールiモードメールで送ってしまっても良いので、Gmail のデフォルトのメールアドレスを仕事用のに設定しておくことで対応しよう。

これで大体設定完了。

移行したことによるメリット

メリットは以下。

  • メールボックスの溢れの心配がなくなる。
  • Gmail spam 機能が使える。- ローカルで bsfilter 使っているけれども、それよりも強力 (多分)。
  • Web ブラウザからメール送受信ができる。- 自分の端末以外でパスワードを入力するのが怖いのと、自分の端末があるなら Mew から送受信してしまうからサブで。
  • iモードからメールをチェックできる。

Gmail で言うところのスレッドについては、ちょっと慣れが必要そうだな。

移行したことによるデメリット

  • メールがローカルまで落ちてくるのが遅くなる。- 各メールボックスからの転送分のタイムラグがある。さらに Gmail では受信してもすぐ POP できるわけではないようだ。なので、Web ブラウザ上で受信を確認していてもそれに対してローカルの Mew で引用返信がすぐできなくなってしまった。
  • リモートサーバ上にメールを置いておくことに対する不安感がある。
  • iモードからメールをチェックできる。見なくてもいい時に読んでしまう可能性が。

なにはともあれ、一気に移行してしまった。 細かい所で違和感がまだあるけれども、いずれ慣れるだろう。 きっとその時は便利に感じるに違いない。

ようやくこれで本当の Gmail ユーザだ。

[ 8月8日全て ]

2008年9月4日 (木)

一部のドメインのみ Gmail 経由ではなく SMTP over SSHメールする

GmailSMTP サーバ経由で送ったメールが相手のサーバに「Sender address rejected: We can't receive FreeMail message」で拒否されてしまった。 1年前に全部 Gmail の SMTP サーバ経由で送る設定にしてしまっていて今さら面倒なのだが、仕事関係のメールで送らないわけにもいかないので Mew の設定を修正。

拒否されたドメインに送る場合には、デフォルトで設定している Gmail 経由ではなく会社の SMTP サーバから送るようにする。

まずは case 振り分け設定。

 (setq mew-case-guess-alist
       '(
         ("From:"
          ...
          )
         ("To:"
          ...
          ("拒否られたドメイン" . "compaysmtp")
          ...
         )
        ))

今回の設定変更で初めて知ったのだが、mew-case-guess-alist は後にマッチした方が優先されるらしい。最初 From: の方が後になっていて、期待したように動かずなんでだろうと思った。

次に送信設定。以前の SMTP over SSH で送っていた時の設定を復活。 後で Gmail で POP で吸い出させる際にメールのコピーが取れるように、Dcc: を設定しておく(昔設定していたけれど、Gmail に移行した時に消したやつ)。

 (setq mew-config-alist
       '(
         ("companysmtp"
          ("mail-domain"   . "example.com")
          ("smtp-server"   . "localhost")
          ("ssh-keep-connection" . nil)
          ("dcc"             . "自分のメールアドレス")
          ("smtp-ssh-server" . "mail.example.com"))

また会社のメールサーバは POP before SMTP なのでメールを送信する前に、いったん POP する必要がある。 しかし POP でメールを取ってしまうと Gmail 側から POP できなくなる。 これについては送信の際には fetchmail --check とやって認証だけ通すことにしよう。 そんなにしょっちゅうあるわけではないから、これでいいかな。

なんどかテストしながらようやくメールを送信。 1通メール出すのに随分かかってしまった。 Gmail は通して欲しいなぁ。

[ 9月4日全て ]

2008年9月5日 (金)

今日のさえずり - 「ゑぶあぷり」って誤変換にしておくのは勿体ないな

2008年09月04日

  • 09:43 急いでいるのか、下手なのか。今日の京浜東北線の発進・停止が荒い。[mb]
  • 11:34 Subversion リポジトリ間でのコピーをダンプ経由でやってみた。面倒。
  • 12:19 口内炎できた。噛んだりしてないからビタミン B2 不足かなぁ。独り身生活になってから毎朝食の目玉焼き食べてないし。
  • 12:26 あ、昼休みR25 ぱらっとなめてしまった。風呂用なのに。
  • 12:54 男が「男性用化粧水を使うか、それとも彼女()の化粧水を拝借するか」でオフィスで盛り上がっている。
  • 13:21 @maru_kei 冬場の乾燥時期には男性諸君も化粧水を使うというのは一致。日焼け止めは(女性陣の予想に反して)男はあまり使わないで一致。
  • 15:46 GmailSMTP サーバ経由で送ったメールが「Sender address rejected: We can't receive FreeMail message」で拒否られた。SMTP サーバ変更して送り直せってか。面倒。
  • 17:16 ようやくメーラの設定変更してその拒否られたサーバ宛だけは別の SMTP サーバ経由で送るようにした。
  • 19:01 会社出た。暑さ落ち着いたけど、雨降るのかな。[mb]
  • 19:09 デブ用のズボンってポケットの容量もデカいのか。すごいな。[mb]
  • 19:42 初めて黒烏龍茶買ってみた。高いな。[mb]
  • 23:19 ほぼ日手帳2009注文した。ファブリックカバー・マキノ・ヘリンボーン。

2008年09月05日

  • 08:24 8月13日の時点で 460 まで減らした follow 数だが、結局今 703 まで V 字回復。
  • 09:39 秋葉原昭和通り側の公園に消防車到着。L:秋葉原駅[mb]
  • 09:59 @ogochan 野次馬する前に出社してしまいました。救急車も来てましたね。
  • 12:43 久しぶりに mixi 招待権限発動させた。
  • 12:50 [B!] ですね、わかりますとは - はてなダイアリー http://tinyurl.com/69uzjm
  • 14:53 コンビニに耳栓買いにいったけれど無かったのでお茶買ってきた。スポーツ紙の「尿保管」ってこりゃまた。
  • 15:06 「ゑぶあぷり」って誤変換にしておくのは勿体ないな。
  • 16:38 Dsrfix で、Dell Dimension C521 の MBR を戻した。
  • 16:49 Dell PC リストア終了。
  • 21:14 ヨドバシカメラで耳栓購入。[mb]
  • 22:01 松屋。[mb]
  • 22:14 牛めしに、肉もご飯も見えないぐらいに全面山盛りに紅生姜をのせて食べている人がいて動揺している。[mb]
  • 22:23 あとちょっとなのに雨。[mb]
[ 9月5日全て ]

2008年10月19日 (日)

今日のさえずり - 鹿嶋神社例大祭追跡中

2008年10月17日

  • 09:30 一昨日から喉の調子が悪く昨日はヤバげだったのでマスクして通勤する。[mb]
  • 09:58 今日のヨドバシカメラ店頭はルンバデモ。[mb]
  • 10:38 Lotus Notes 7.0.1 でメール返信すると Sender: も Cc: に追加されるようになっているの? Gmail SMTP サーバ経由で送ったメールの返信の Cc: に Gmail アドレスが入ってきてちょっと嫌。
  • 13:00 @zakwa 15:00 のミーティング、15:30 にしたいらしいよ。
  • 13:13 午前中はマスクをしたまま仕事をして体調不良感をさりげなくアピールした。
  • 16:33 ポビドンヨードでなんとか風邪をおさえつけてる。
  • 17:21 会社出た。[mb]
  • 17:26 ん? 昭和通りに Tomod's できるの? L:秋葉原[mb]
  • 23:25 熱はかってみた。35.4℃。あれ?
  • 23:28 電子体温計ではかり直してみた。35.7℃。あれあれ? 喉痛いし頭ぼーっとするし熱あると思ったんだけどなー。
  • 23:30 明日来客があるしベンザブロックLのんでおくか。有効期限今月までのだし。

2008年10月18日

2008年10月19日

[ 10月19日全て ]

2010年2月11日 (木)

Google Buzz がきたのであわてて Gmail を2つに分けた

今朝見たら 自分の Google アカウントにも Google Buzz がやってきていた。 さっそく TwitterFlickr を関連付けたけれど、まてよと思いすぐに外した。

気になったのが「頻繁にメールチャットのやりとりをしている相手が自動的にフォローされる」という説明。 自動的にフォローするということは自動的にフォローされる可能性もあるということだ(実際にはフォローまではしなくて候補にでるだけなのかも)。

メールは基本的に1つの Gmail アカウントに集約していて仕事関連のコンタクトも登録してあるので、何かの拍子で仕事相手の人に(何となくで) Google Buzz フォローされたらどうなのと。 Web に自己紹介も Twitter アカウントも晒しているので、興味をもって見てもらえること自体は全くもっていいのだが、何となく見られて「ふーん」っていう感じは嫌だよなあと。

ということでいい機会なので仕事用の Gmail アカウントを別に作ることにした。Android 使うのに向けて Google アカウントとサービスの利用について整理しなければと思っていたところだし。

Gmail アカウントを2つに分けた手順

仕事のメールアドレスでとって Google カレンダーGoogle ドキュメントなどで使っている Google アカウントGmail アカウントを作成し設定していった。

  1. Google アカウントGmail アカウント新規登録。こちらももう Google Buzz が有効になっていた。
  2. Gmail アカウントからコンタクトリストをエクスポートして、新 Gmail アカウントにインポート。それぞれ不要なコンタクトを削除。
  3. Gmail アカウントから現 Gmail アカウントに転送するように設定。現 Gmail に過去メールが溜っているので引き続きこちらで検索できるように。
  4. 仕事のメールボックスからの 現 Gmail アカウントからの POP 受信を止めて、新 Gmail アカウントで POP 受信するように変更。
  5. Gmail アカウントで設定していた送信者メールアドレスをいくつか削除し、新 Gmail アカウントから出せるように設定。
  6. Gmail アカウントからノート PC へ POP3 受信する設定を fetchmail 設定ファイルに追加。
  7. Gmail のコンタクトリスト整理が済んだので、Google Buzz に再度 TwitterFlickr を関連付け。
  8. Mew (メーラ)からの送信設定を変更。現 Gmail アカウントでは登録しておいた送信者メールアドレスを From: に指定して、Mew から GmailSMTP サーバ経由で送信できていたのだが、新 Gmail アカウントでは From: が Gmail アカウントに書き換えられてしまうことが判明。Sender: が Gmail アカウントになるのは理解していたが、この挙動には困った。不正防止の仕様なのだろう。Mew からは仕事のメールアドレス本来の SMTP サーバから送信するように設定。結果 Gmail SMTP サーバ経由での送信では駄目だった自身の送信メールの POP について、Mew で Dcc を設定することで同様のことが実現できるようになったので結果オーライ。

これで気をつけなければならない点は、新 Gmail アカウントを使って Web 上からメールを送信すると現 Gmail アカウントにコピーが残らないという点ぐらいかな(Cc / Bcc しておかない限り)。 基本的にはほとんど Mew から送信しないから問題ないか。

2010年2月13日追記

Google アカウントGmail 追加後「既存のメールアドレスを Google アカウント予備メールアドレスから削除」「Gmail で送信者として追加」「Google アカウント予備メールアドレスに再び追加」で解決するようだ。

Google Buzz

コンタクトリストの指定したグループのみに投稿を限定公開できるという機能が、Twitter ではできなかった組織内限定コミュニケーションで使えそうかなと期待している。 従来は Twitter クローンを立ち上げるか、そういう企業向けマイクロブログサービスを使う必要があったが、小規模なものにについては Google Buzz で気楽にできそうだ。

Gmail アカウント上では Google Buzz 今まで通りのネット活動として Google Buzz を利用し、新 Gmail アカウント上では社内・チーム内でのツールとして活用してみたい。

今日のさえずり - パスポートみたら有効期限切れてた

2010年02月11日

[ 2月11日全て ]

2010年5月24日 (月)

今日のさえずり: サザエさん観てないせい?

2010年05月24日

[ 5月24日全て ]

2010年11月24日 (水)

専用 RubyOpenSSLビルドして Redmine を入れるときの落とし穴

新しい開発プロジェクトでは Git + Redmine を使おうと思う。 で例により使えるのが Red Hat Linux 8.0 サーバなので対応する Ruby やライブラリを含めてソースコードからビルドしてインストールしたのだが、ちょっとハマったのでメモ

システムにインストールされている OpenSSL を(パッケージがなくアップデートできないので)残したまま、新しい OpenSSL をいれて使うのだが Ruby でこれを使えるようにする方法に辿りつくまで8割の時間を費した。

OpenSSLインストールする

OpenSSL のデフォルトである /usr/local/ssl へビルドしてインストールする。

 tar zxvf openssl-1.0.0b.tar.gz
 cd openssl-1.0.0b
 ./config shared
 make
 make test
 make intall

何も指定しないと共有ライブラリ(so)がビルドインストールされないのが落とし穴。

Ruby 1.8.7 をインストール

後は /usr/local/redmine 以下に Redmine に必要なものを入れる。

 tar jxvf ruby-1.8.7-p302.tar.bz2
 cd ruby-1.8.7-p302
 CFLAGS='-I /usr/local/ssl/include' \
   LDFLAGS='-L /usr/local/ssl/lib -Wl,-rpath=/usr/local/ssl/lib' \
   ./configure --prefix=/usr/local/redmine --enable-rpath
 make
 make install

大きな落とし穴は Ruby に含まれている ext/openssl。 OpenSSL 用の共有ライブラリが作られるのだが、いくらやってもこいつが /lib に入っている古い OpenSSL 共有ライブラリの方をリンクしてしまい /usr/local/ssl/lib の方をリンクしてくれない。

configure や make 時に LD_RUN_PATH やら -rpath を指定しても効かないし、ext/Setup で openssl を静的に指定しても駄目だし。

結局 configure.in を眺めて AC_ARG_ENABLE(rpath, ...) があるのを発見して --enable-rpath したところようやく -rpath が共有ライブラリのビルドに反映されるようになった。

30m ぐらいの深さの大きい落とし穴。

RubyGems をインストール

/usr/local/redmine に Ruby が入ったので必要なものを入れていく。 確実にそこの Ruby を使うようにしばらくは /usr/local/redmine/bin 以下を絶対パス指定で作業。

 tar zxvf rubygems-1.3.7.tgz
 cd rubygems-1.3.7/
 /usr/local/redmine/bin/ruby setup.rb

SQLiteインストール

Redmineデータベースは一番お手軽な SQLite を使う。これもインストール

 tar zxvf sqlite-amalgamation-3.7.3.tar.gz
 cd sqlite-3.7.3
 ./configure --prefix=/usr/local/redmine
 make
 make install

sqlite3-ruby をインストール

Ruby から SQLite を使うためのライブラリをインストール

 /usr/local/redmine/bin/gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/redmine

SQLite のありかを示す --with-sqlite3-dir を -- の次に指定するというところに気がつくのに浅い落とし穴。

Passenger

Redmineインストールの説明では Passenger を推奨しているようなので入れてみる。

 /usr/local/redmine/bin/gem install passenger

OK。しかし Apache モジュールを

 /usr/local/redmine/bin/passenger-install-apache2-module

インストールしようとすると失敗。Apache の dev 系のファイルがシステムに入っていないので、それはそうだな。しかし Passenger のコマンドは寡黙ではなく何が駄目で何をすべきかきちんと表示してくれるのでわかりやすい。

この落とし穴は、横を通って回避。

Rack のダウングレード

Passenger のインストールで最新の Rack が一緒にインストールされるのだが、Redmine には新しすぎて後の手順でエラーで止まる。 ので、ここで 1.0.1 にダウングレードしておく。

 /usr/local/redmine/bin/gem install rack -v 1.0.1

これは皆が知っている落とし穴。

Redmineインストール

ようやく Redmineインストール。 展開するだけ。

 tar zxvf redmine-1.0.3.tar.gz
 mkdir -p /usr/local/redmine/var/lib
 mv redmine-1.0.3 /usr/local/redmin/var/lib/redmine

以下 /usr/local/redmine/var/lib/redmine で作業。

 cd /usr/local/redmine/var/lib/redmine

Redmineデータベース設定をする

config/database.yml を作成する。SQLite を使うように設定。

 production:
   adapter: sqlite3
   database: /home/naney/var/redmine/redmine.db

データベースは定期バックアップのある自分の home 以下に。

 makdir -p ~/var/redmine

Remine のメール設定をする

config/email.yml を作成する。今回は専用の redmine@example.com を作成して、その SMTP サーバ/アカウント経由で送信するようにする。

 production:
   delivery_method: :smtp
   smtp_settings:
     address: smtpserver.example.com
     port: 25
     domain: redmine.example.com
     user_name: "redmine@example.com"
     password: "mypassword"

Redmine の初期化をする

必要なファイルやらデータベースの初期化やらを行う。

 /usr/local/redmine/bin/rake config/initializers/session_store.rb
 /usr/local/redmine/bin/rake db:migrate RAILS_ENV=production
 /usr/local/redmine/bin/rake redmine:load_default_data RAILS_ENV=production

最後のコマンドでは言語を選ぶプロンプトが出るので ja を指定。

Passenger で Redmine を起動する(NG)

Apache 経由ではなく Passenger スタンドアローンで Redmine を使ってみる。

 /usr/local/redmine/bin/passenger start

失敗。途中の処理で rake が見つからないという。

 PATH=/usr/local/redmine/bin:$PATH
 passenger start

やっぱり失敗。自動的にダウンロードした ngix のビルドに失敗しているっぽい。 落とし穴。

WEBrick で Redmine を起動する(OK)

 /usr/local/redmine/bin/ruby script/server webrick -e production

Redmine 的には 本番向けではない WEBrick は無事起動。

 http://インストールしたサーバ:3000/

にブラウザにアクセス。Redmine のページが見えたよオッカサン! admin:admin でログインしてあとは Web ブラウザから設定。 Git リポジトリの連携もすんなり。

やったね。

追記 (2010年12月2日)

WEBrick で使い続けるなら script/server 起動時に -d オプションを指定する(記事)。

[ 11月24日全て ]

2010年12月23日 (木)

今日のさえずり: ラオックス井門大井店12月31日閉店

naney:5292605613

2010年12月23日

[ 12月23日全て ]

2010年12月24日 (金)

今日のさえずり: ミスド福袋 Web でチェックしてる

2010年12月24日

[ 12月24日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.064249s / load averages: 0.26, 0.28, 0.38
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker