日記

Outbound Port 25 Blocking の悪夢 (送信できない!)

1 Mins read

「受信はできるのですが、メールが送れないので見てください」

それは一本の電話から始まった。

環境は他のメールサーバーを5つ借りているクライアントさん、それぞれPOP3、SMTPが存在していて、契約しているプロバイダ OCNのメアドは一つもない状態でPC数は5台ぐらい。

はて?前日まで使用出来ていて、全てのクライアントでいきなりダメ?

WebはOK、受信もOK、nslookupでdomainサーチもOK、でもメールだけ送れない???

telnetで接続を試みても、53、80、110はOK!でも25が接続エラー???

そのうち受信も駄目になり、その後にWebも駄目に、これはルーターが壊れたか?と思いまずはリセット

再起動後はメールの送信も1、2通できるしWebやメール受信もOK、がしばらくするとまた送信が出来ない、この不安定さが俺をますます混乱させる???いろいろ調べるが同じの繰り返し、クライアントさんからではなく、自社からはPOP,SMTPとも使用可能でサーバー側のエラーではなさそう???

ためしにルーターを変えてみる・・・・・またSMTPがダメ、でも初めの1,2通はメールが送れる、これが俺をますます混乱させる。

ふと「Outbound 」かぁ??ダメもとで465と587をtelnetで叩く・・・・

587でビンゴ!!!!!!

原因はOCN以外のSMTP経由の25を遮断したのが原因だった。

全てのメール設定を587にして完了。この間3日ぐらいかかった(涙)

最終的にはパケットモニタリングをしかけてルーターを詳細なsyslog吐けるものに変えて調べるしか方法はないかとも思っていたが・・・これやると時間&労力を取られるからな(苦笑)

なぜ、ルーターを再起動した後に1つ2つメールが25ポートで送れるかが不思議、且つそれが俺を苦しめた・・・・・しかも、徐々に外向けのアクセス(80や110)を麻痺させていく、これはコリジョンが起こったのではと

しかし、これくらっている人、結構いるんじゃないのかな?恐るべしOCN(怒)

参考文献

Read more
JavaScript日記

ExtJsにて自動ID生成

1 Mins read

ExtJs2.2.1にて独自クラスを作成した時に、数が多くなってくると固定idでは使うのが大変になってくる。???何が大変かはわかるでしょう!?、部品が一杯になってくるとidが重なる可能性が出てくるってことです。

独自クラス内では自分のidを使いたい、でも固定ではid管理がメンドクサイ、って時に私が使用している方法。(ってExt内では当たり前の使い方だったりする)

id: Ext.id()
上記をコンストラクタ内に設定

ちなみにコンストラクタにて上位からconfig指定されてくる可能性がある時は
id: config.id || Ext.id()

Ext自体、上位のクラスでidを指定しなければ下位のスーパークラスにて同じようにidを振ってくれるので、あくまで独自にidを知る且つそれを使いまわす時に使用する方法です。

以上

Read more
JavaScript

Extjs ComboBoxにてリストをはじめからロードする方法

1 Mins read

Extjs2.2.1においてComboBoxを使用時にサーバーからリストを取得して使用するときに初回のフォーカス移動&クリック時にリストを取得しに行くが、これだと更新処理の時にはじめから値をセットできない。(正しくはセットできるがsetValueを使用すると後述するvalue値にセットされてしまう)

ComboBoxではdisplayValueとvalue値の2つを使い分けている。

名前のとおり「displayValue」は表示用「value」は本来の値として使用する。
(selectタグのvalueとoptionみたいな関係だろう。)

そこで、画面表示時にリストを設定するにはプロパティ設定&メソッド呼び出しが必要になるので覚書!

config設定にて以下を含める
「lazyInit: false」

さらにrenderイベントなどに以下を含める(注意:cboは実体化されたComboBox)
cbo.doQuery(cbo.allQuery, true);

その後にsetValueすればOK!

Read more
ASP.NETJavaScriptPHP

eval使用時にJsonでの改行について

1 Mins read

Jsonの項目内の改行コードの記述方法について

サーバーサイドでは\マークはエスケープ文字としてよく利用されている為に
ついつい”\n”の状態にてJsonに含めるとクライアントサイドのeval時にエラーとなる。

なのでエスケープされる場合は”\\n”と2回つけることを忘れべからず!
もちろん多数ある場合も改行コードを上記のように置換処理をすること!

PHPの場合はダブルクォート「”」とシングルクォート「’」でエスケープされる、
されないが変わるので、どちらかに統一するのが望ましい。

これはJsonだけの話ではないが、重要なので記述!
javascript側では受け取ったJsonを展開するときにカッコで囲ってあげること!
例:var a = eval(‘(‘+json+’)’); //このカッコ追加は結構注意!

覚書(^ ^)

Read more
Linux日記

CentOS5.2 yumのエラー対応

1 Mins read

以下のようなエラーが発生することがある
File “/usr/bin/yum”, line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)

1. yumをクリーンアップ
過去にダウンロードしたパッケージ類を削除する。

# yum clean all

大抵の場合はこれでいける。
これでいけない場合

・・・また今度(^ ^)

Read more