水曜日 4 22, 2009

SJSMS - Solaris 10 の SMF に登録しよう

今回は久しぶり(なんと半年振り!)に Messaging Server ネタです。
以前のブログ記事(その 1,その 2)でインストールしてみた Messaging Server 関連コンポーネントを Solaris 10 の SMF に登録して、自動起動の設定をしてみましょう。
前回インストールした関連コンポーネントは以下の通りです。

  • Directory Server 6.3
  • Messaging Server 7.0
  • Application Server 9.1
    • Access Manager 7.1
    • Delegated Administrator 6.4
    • Sun Convergence 1.0

上記コンポーネントの中で、Access Manager, Delegated Administrator, Sun Convergence は、Application Server 9.1 上に配備されておりますので、SMF に登録して自動起動の設定をする必要があるコンポーネントは以下 の 3 つになります。

  • Directory Server 6.3
  • Messaging Server 7.0
  • Application Server 9.1

では、順番に、SMF に登録していきましょう。

目次

  1. Directory Server 6.3 を SMF に登録
  2. Messaging Server 7.0 を SMF に登録
  3. Application Server 9.1 を SMF に登録
  4. 参考情報

Directory Server 6.3 を SMF に登録

実は、Directory Server 6.3 の提供方法は、パッケージ版と ZIP アーカイブ版の 2 種類があり、 インストール・設定に若干の差異があります。
パッケージ版の Directory Server では、dsadm コマンドから SMF にサービスを登録する方法が あるのですが、ZIP アーカイブ版では、dsadm コマンドから SMF にサービスを登録する事が出来ません。
  ※ パッケージ版のためのご参考
以前のブログ記事で紹介したインストール手順では、ZIP アーカイブ版の Directory Server を 使用しているので、dsadm enable-service コマンドが使えません。
そこで今回は、/opt/SUNWdsee/ds6/install 配下に用意されているテンプレートファイルを 使って、SMF に登録します。

 sw-89# pwd
 /opt/SUNWdsee/ds6/install
 sw-89# cp tmpl_smf.manifest ds6_for_ms7_smf.manifest
  ※ あらかじめ、template ファイルをコピーします。
 sw-89# vi ds6_for_ms7_smf.manifest
  ※ manifest ファイルを下記 diff に示される様に編集します。
  ※ 具体的には、"%%%DATE_CREATED%%%", "%%%INSTALL_PATH%%%"
  ※ "%{sunds/path}", "%%%TIMEOUT_SECONDS%%%" を適宜編集します。
 sw-89# diff ds6_for_ms7_smf.manifest tmpl_smf.manifest
 6c6
 <     Created on : 2009/04/16
 ---
 >     Created on : %%%DATE_CREATED%%%
 24,25c24,25
 <                  exec="/opt/SUNWdsee/ds6/bin/dsadm start --exec /var/opt/SUNWdsee/dsins1"
 <                  timeout_seconds="600">
 ---
 >                  exec="%%%INSTALL_PATH%%%/bin/dsadm start --exec %{sunds/path}"
 >                  timeout_seconds="%%%TIMEOUT_SECONDS%%%">
 35,36c35,36
 <                  exec="/opt/SUNWdsee/ds6/bin/dsadm stop --exec /var/opt/SUNWdsee/dsins1"
 <                  timeout_seconds="600">
 ---
 >                  exec="%%%INSTALL_PATH%%%/bin/dsadm stop --exec %{sunds/path}"
 >                  timeout_seconds="%%%TIMEOUT_SECONDS%%%">
 sw-89#
 
 sw-89# cat ds6_for_ms7_smf.manifest
 <?xml version='1.0'?>
 <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>

 <!--
     Document   : ds6-service.xml
     Created on : 2009/04/16
     Author     : Directory Server Enterprise Edition Team
     Description: The SMF Service Manifest file for Directory Server 6
 -->

 <service_bundle type="manifest"
                 name="SUNWldap-directory services">
   <service name="application/sun/ds" type="service" version="1">
     <dependency name="filesystems" grouping="require_all"
               restart_on="none" type="service">
       <service_fmri value="svc:/system/filesystem/local:default"/>
     </dependency>
     <dependency name="network" grouping="require_all"
              restart_on="none" type="service">
       <service_fmri value="svc:/network/initial:default"/>
     </dependency>
     <exec_method type="method"
                  name="start"
                  exec="/opt/SUNWdsee/ds6/bin/dsadm start --exec /var/opt/SUNWdsee/dsins1"
                  timeout_seconds="600">
       <method_context working_directory=":default">
         <method_credential user="root"
                            group=":default"
                            privileges=":default"/>
       </method_context>
       <stability value="Evolving"/>
     </exec_method>
     <exec_method type="method"
                  name="stop"
                  exec="/opt/SUNWdsee/ds6/bin/dsadm stop --exec /var/opt/SUNWdsee/dsins1"
                  timeout_seconds="600">
       <method_context working_directory=":default">
         <method_credential user="root"
                            group=":default"
                            privileges=":default"/>
       </method_context>
       <stability value="Evolving"/>
     </exec_method>
     <instance name="default" enabled="false"/>
     <stability value="Evolving"/>
     <template>
       <common_name>
         <loctext xml:lang="C"> Directory Server </loctext>
       </common_name>
       <documentation>
         <doc_link name="Directory Server Enterprise Edition 6 Administration Guide" uri="http://docs.sun.com/doc/819-0995/"/>
       </documentation>
     </template>
   </service>
 </service_bundle>
 sw-89#
 
 sw-89# svccfg import ./ds6_for_ms7_smf.manifest
  ※ 上記で作成した manifest ファイルを svccfg コマンドにて import します。
 
 sw-89# svcs ds
 STATE          STIME    FMRI
 disabled       14:52:43 svc:/application/sun/ds:default
  ※ svc:/application/sun/ds:default が追加されている事を確認します。
 
 sw-89# svcadm enable ds
  ※ svc:/application/sun/ds:default サービスをスタートします。
 
 sw-89# ps -ef | grep slapd
     root 13460  8891   0 14:54:59 ?           0:01 /opt/SUNWdsee/ds6/lib/64/ns-slapd -D /var/opt/SUNWdsee/dsins1 -i /var/opt/SUNWd
     root 13463  9868   0 14:55:01 pts/3       0:00 grep slapd
 sw-89# 
  ※ ns-slapd (Directory Server のプロセス) が起動している事が確認出来ます。
 
 sw-89# svcs ds
 STATE          STIME    FMRI
 online         14:55:02 svc:/application/sun/ds:default
 sw-89# 
  ※ svc:/application/sun/ds:default サービスも online になっている事が確認出来ます。
 
 sw-89# svcadm disable ds
  ※ svc:/application/sun/ds:default サービスを停止します。 
 
 sw-89# svcadm disable ds
 sw-89# svcs ds
 STATE          STIME    FMRI
 online\*        14:57:23 svc:/application/sun/ds:default
 sw-89# svcs ds
 STATE          STIME    FMRI
 disabled       14:57:27 svc:/application/sun/ds:default
 sw-89# 
  ※ svc:/application/sun/ds:default サービスが停止された事が確認出来ます。
 
 sw-89# svcadm enable ds
 sw-89# svcs ds
 STATE          STIME    FMRI
 offline\*       14:58:12 svc:/application/sun/ds:default
 sw-89# svcs ds
 STATE          STIME    FMRI
 online         14:58:19 svc:/application/sun/ds:default
 sw-89# 
  ※ 最後に svc:/application/sun/ds:default サービスを起動させておきます。

以上で、Directory Server の SMF の登録が完了しました。

Messaging Server 7.0 を SMF に登録

次に Messaging Server を SMF に登録しましょう。
Messaging Server の登録方法も Directory Server と同様テンプレートファイル を利用して SMF に登録します。

 sw-89# pwd
 /opt/sun/comms/messaging64/data/install
 sw-89# ls
 pab.ldif                   schema2ug_store.ldif       schema2usergroup.ldif.rej
 restofmessaging.xml        schema2usergroup.ldif      watcher.xml
 sw-89#

まずこの場所に messaging.xml ファイルが存在するか確認してください。
messaging.xml が存在する場合は下記の手順(messaging.xml の作成・msgexe の編集)を 省略してください。
  ※ 当初提供されていた restofmessaging.xml, watcher.xml を利用する方法では
  ※ ただしく動作しない問題が見つかっております。
  ※ その問題の回避のため、messaging.xml の作成・msgexe の編集を行ないます。

 sw-89# pwd
 /opt/sun/comms/messaging64/lib
 sw-89# cp msgexe msgexe.orig
  ※ SMF から利用する起動・停止スクリプトのバックアップを作成します。
 sw-89# vi msgexe
  ※ msgexe を下記に示される様に編集します。
  ※ 具体的には、start-msg, stop-msg の引数($2) を削除、
  ※ refresh 時のコマンドを refresh コマンドに変更します。
 sw-89# cat msgexe
 #!/sbin/sh

 ##  Copy/Rename this script to //lib/
 ##  Please change $REPOS to the location of your SVN Repo

 . /lib/svc/share/smf_include.sh

 parser() {
         PROPERTY=$1
         # VALUE=`svcprop -p ${PROPERTY} watcher`
         VALUE=`svcprop -p ${PROPERTY} messaging_server`
         if [ "${VALUE}" = "\\"\\"" ] ; then
                 VALUE=
         fi
         echo $VALUE
 }

         MESSAGING_BASE=`parser application/messaging_server_base`

         if [ -z "${MESSAGING_BASE}" ] ; then
                 exit $SMF_EXIT_ERR_CONFIG
         fi

 case $1 in

         'start')
                 # ${MESSAGING_BASE}/bin/start-msg $2
                 ${MESSAGING_BASE}/bin/start-msg
                 if [ $? -ne 0 ] ; then
                         exit $SMF_EXIT_ERR_FATAL
                 fi
                 exit $SMF_EXIT_OK
                 ;;
         'stop')
                 # ${MESSAGING_BASE}/bin/stop-msg $2
                 ${MESSAGING_BASE}/bin/stop-msg
                 if [ $? -ne 0 ] ; then
                         exit $SMF_EXIT_ERR_FATAL
                 fi
                 exit $SMF_EXIT_OK
                 ;;
         'refresh')
                 # ${MESSAGING_BASE}/bin/stop-msg        $2
                 # sleep 5
                 # ${MESSAGING_BASE}/bin/start-msg $2
                 ${MESSAGING_BASE}/bin/refresh
                 if [ $? -ne 0 ] ; then
                         exit $SMF_EXIT_ERR_FATAL
                 fi
                 exit $SMF_EXIT_OK
                 ;;
         \*)
                 echo "Usage: $0 { start | stop | refresh }"
                 exit $SMF_EXIT_ERR_FATAL
                 ;;
                 esac
 sw-89# 
 sw-89# cd /opt/sun/comms/messaging64/data/install
 sw-89# cp restofmessaging.xml messaging.xml
  ※ restofmessaging.xml を messaging.xml にコピーします。
 sw-89# vi messaging.xml
  ※ messaging.xml ファイルを下記に示される様に編集します。
  ※ 具体的には、dependency name='watcher' 部分をコメントアウト、
  ※ dependency name='DirectoryServer' を追加します。
  ※ 尚、dependency name='DirectoryServer' は、Directory Server
  ※ を別サーバにインストールしている場合は、不要です。
 sw-89# cat messaging.xml
 <?xml version="1.0"?>
 <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
 <!--
 Sun Java Enterprise System Messaging Server 7.0 ( Cascabel )
 -->
 
 <service_bundle type='manifest' name='messaging_server'>
 
         <service
             name='network/messaging_server'
             type='service'
             version='1'>
 
             <create_default_instance enabled='false' />
 
             <single_instance />
 
             <dependency
                 name='network-service'
                 grouping='require_all'
                 restart_on='none'
                 type='service'>
                 <service_fmri value='svc:/network/service' />
             </dependency>
 
             <dependency
                 name='fs-local'
                 grouping='require_all'
                 restart_on='none'
                 type='service'>
                 <service_fmri value='svc:/system/filesystem/local' />
             </dependency>
 
             <dependency
                 name='name-services'
                 grouping='require_all'
                 restart_on='refresh'
                 type='service'>
                 <service_fmri value='svc:/milestone/name-services' />
             </dependency>
 
             <dependency
                 name='identity'
                 grouping='optional_all'
                 restart_on='refresh'
                 type='service'>
                 <service_fmri value='svc:/system/identity:domain' />
             </dependency>
 <!--
             <dependency
                 name='watcher'
                 grouping='require_all'
                 restart_on='refresh'
                 type='service'>
                 <service_fmri value='svc:/network/watcher' />
             </dependency>
 -->
             <dependency
                 name='DirectoryServer'
                 grouping='require_all'
                 restart_on='refresh'
                 type='service'>
                 <service_fmri value='svc:/application/sun/ds:default' />
             </dependency>
 
             <exec_method
                 type='method'
                 name='start'
                 exec='/opt/sun/comms/messaging64/lib/msgexe start'
                 timeout_seconds='180' >
             </exec_method>
 
             <exec_method
                 type='method'
                 name='stop'
                 exec='/opt/sun/comms/messaging64/lib/msgexe stop'
                 timeout_seconds='180' >
             </exec_method>
 
             <exec_method
                 type='method'
                 name='refresh'
                 exec='/opt/sun/comms/messaging64/lib/msgexe refresh'
                 timeout_seconds='180' >
             </exec_method>
 
             <property_group name='application' type='framework'>
                     <propval name='messaging_server_base' type='astring'
                             value='/opt/sun/comms/messaging64' />
             </property_group>
 
             <property_group name='startd' type='framework'>
                 <propval name='ignore_error' type='astring'
                         value='core,signal' />
             </property_group>
 
             <stability value='Unstable' />
 
     </service>
 
 </service_bundle>
 sw-89#

messaging.xml ファイルがあった場合もここから先は実行してください。

 sw-89# svccfg import ./messaging.xml
  ※ messaging.xml ファイルが出来たら、svccfg コマンドにて import します。
 sw-89# svcs network/messaging_server
 STATE          STIME    FMRI
 disabled       15:12:37 svc:/network/messaging_server:default
 sw-89# 
  ※ svc:/network/messaging_server:default が追加されている事を確認します。
 
 sw-89# svcadm enable messaging_server
  ※ svc:/network/messaging_server:default サービスをスタートします。
 sw-89# svcs messaging_server
 STATE          STIME    FMRI
 offline\*       15:23:08 svc:/network/messaging_server:default
 sw-89# svcs messaging_server
 STATE          STIME    FMRI
 online         15:23:16 svc:/network/messaging_server:default
 sw-89#
  ※ svc:/network/messaging_server:default サービスが online になっている事が確認出来ます。

以上で、Messaging Server の SMF の登録が完了しました。


Application Server 9.1 を SMF に登録

最後に Application Server を SMF に登録しましょう。
Application Server は、テンプレートファイルの利用では無く、asadmin コマンドにて SMF に 登録出来ます。

 sw-89# cat /.passwordfile
 AS_ADMIN_USER=admin
 AS_ADMIN_PASSWORD=<admin ユーザの実際のパスワードを記載して下さい。>
 AS_ADMIN_MASTERPASSWORD=<マスターパスワードを記載して下さい。>
 sw-89# 
  ※ 自動起動用の password ファイルを作成します。
 sw-89# /opt/SUNWappserver/bin/asadmin create-service --type das --passwordfile /.passwordfile /opt/SUNWappserver/domains/domain1
 サービスが正常に作成されました。詳細は次のとおりです:
 サービスの名前:application/SUNWappserver/domain1
 サービスのタイプ:Domain
 サービスの設定場所:/opt/SUNWappserver/domains
 システム上のマニフェストファイルの場所:/var/svc/manifest/application/SUNWappserver/domain1_opt_SUNWappserver_domains/Domain-service-smf.xml
 このサービスは svcadm コマンドを使用して有効にできます。
 コマンド create-service は正常に実行されました。
 sw-89# 
  ※ asadmin create-service コマンドにて、SMF に登録します。
 sw-89# svcs domain1
 STATE          STIME    FMRI
 disabled       15:50:17 svc:/application/SUNWappserver/domain1:default
 sw-89# 
  ※ svc:/application/SUNWappserver/domain1:default が登録されている事が確認出来ます。
 sw-89# svcadm enable domain1
  ※ svc:/application/SUNWappserver/domain1:default サービスを起動します。
 sw-89# svcs domain1
 STATE          STIME    FMRI
 offline\*       15:50:38 svc:/application/SUNWappserver/domain1:default
 sw-89# svcs domain1
 STATE          STIME    FMRI
 offline\*       15:50:38 svc:/application/SUNWappserver/domain1:default
 sw-89# svcs domain1
 STATE          STIME    FMRI
 online         15:52:34 svc:/application/SUNWappserver/domain1:default
 sw-89# 
  ※ svc:/application/SUNWappserver/domain1:default サービスが online になっている事が確認出来ます。

以上で、前回インストールした Messaging Server 関連コンポーネントが Solaris の SMF に登録され、OS 起動時に自動起動されるように設定されました。

 sw-89# svcs ds messaging_server domain1
 STATE          STIME    FMRI
 online         14:58:19 svc:/application/sun/ds:default
 online         15:23:16 svc:/network/messaging_server:default
 online         15:52:34 svc:/application/SUNWappserver/domain1:default
 sw-89#


参考情報

土曜日 10 25, 2008

SJSMS - Sun Convergence をインストール

Communications Suite 6 に含まれる Sun Convergence は、今流行の AJAX を利用し、ドラッグアンドドロップによるメールのフォルダへの移動や、メール・フォルダなどの 右クリックメニューの表示、メール作成時のアドレス補完機能など、Web インターフェース ながら、スタンドアロンのメールアプリケーションに近い操作が可能なアプリケーションです。

前回、Messaging Server 7.0 のインストールをご紹介しましたので、その続きで、 Sun Convergence をインストールしましょう。

目次
  1. インストール手順
    1. Sun Convergence のインストール
  2. 初期設定
    1. Sun Convergence の初期設定
  3. スクリーンショット
インストール手順
    Sun Convergence のインストール
Sun Convergence は、Communications Suite に含まれるコンポーネントですので、 前回、Messaging Server 等をインストールした commpkg コマンドを使って、 インストールを行います。

また、Sun Convergence 自体は、Mail, Calendar, Instant Messaging の統合 Web インターフェース となっておりますが、今回は、純粋に Web Mail インターフェースとしてセットアップしますので、 追加でインストールするコンポーネントは、Sun Convergence のみです。(Calendar や Instant Messaging は、インストールしません。)
 sw-89# pwd
 /var/tmp/sjsms/Comms6
 sw-89# ls
 Legal_Folder
 README
 SunJava_CommsInstaller_Suite6_solaris-sparc.zip
 SunOS_sparc
 commpkg
 sw-89# ./commpkg install
          リンク : 詳細ログ

以上で、Sun Convergence 自体のインストールが終わりました。

初期設定
  1. Sun Convergence の初期設定
それでは、Sun Convergence の設定を行いましょう。
 sw-89# pwd
 /opt/sun/comms/iwc/sbin
 sw-89# ls
 config-servicetags  init-config         iwcadmin            locatejdk
 sw-89# ./init-config
          リンク : 詳細ログ

これで、Convergence の設定が終わりましたので、Application Server の再起動を行います。
 sw-89# /opt/SUNWappserver/bin/asadmin stop-domain domain1
 ドメイン domain1 が停止しました。
 sw-89# /opt/SUNWappserver/bin/asadmin start-domain --user admin domain1
 ドメイン domain1 を起動しています。お待ちください。
 ログは /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトされます。
 管理パスワードを入力してください>
 マスターパスワードを入力してください>
 出力を /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトしています
 ドメイン domain1 が起動しました。
 ドメイン [domain1] はその設定で [Sun Java System Application Server 9.1_01 (build local)] を実行しています。ログは [/opt/SUNWappserver/domains] にあります。
 管理コンソールは [https://localhost:4848] で使用できます。
 "asadmin" コマンドにも同じポート [4848] を使用します。
 ユーザーの Web アプリケーションは次の URL で使用できます:
 [http://localhost:80 https://localhost:8181 ]。
 次の web-contexts を使用できます:
 [/web1  /__wstx-services amserver ampassword amcommon amconsole /da /commcli /iwc ]。
 標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL:
 [service:jmx:rmi:///jndi/rmi://sw-89.japan.sun.com:8686/jmxrmi] に接続できます。ドメインは少なくとも次のポートで接続を待機しています:
 [80 8181 4848 3700 3820 3920 8686 ]。
 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。
 
 sw-89#
以上で、Sun Convergence の設定が完了しました。

          \* Sun Convergence へアクセスする為の URL
          例) https://sw-89.japan.sun.com/iwc

尚、もし、サインイン後、画面が英語で表示されてしまっていた場合、Options から Language を「日本語」に設定し、Save Preferences をクリックした後、 サインアウト・サインインをする事で、日本語の画面になります。

それでは、新しい Web Mail を存分におためし下さい!
    スクリーンショット
  • ログイン画面
  • メールの右クリックメニュー
  • フォルダの右クリックメニュー
  • アドレス補完
  • 金曜日 9 26, 2008

    SJSMS - 最新の Messaging Server 7 をインストール

    今年の 8 月にリリースされた Communications Suite 6 に含まれる Messaging Server 7.0 は、64bit 対応となり 42.9億通のメール貯留等が可能となるラージメールボックスがサポート されました。
    さらに、Message future Release (RFC 4865) 等の新しい、RFC もサポートされメールの予約送信等も 可能となっております。
    また、Communications Suite 6 よりインストールコマンドも新しくなっておりますが、 Directory Server、Access Manager、Application Server 等は、それぞれ別途インストールする 必要があります。
    今回は Messaging Server の動作に最低限必要なコンポーネントをインストール・設定してみる事で、 新しくなったインストール手順をまとめてみました。

    目次
    1. パッケージのダウンロード
    2. 事前確認
    3. インストール手順
      1. Application Server 9.1 のインストール
      2. Directory Server 6.3 のインストール
      3. Access Manager のインストール
      4. Messaging Server 7.0, DSsetup, Delegated Administrator のインストール
    4. 初期設定
      1. Messaging Server 向けに Directory Server を構成する
      2. Delegated Administrator の初期設定
      3. Messaging Server の初期設定
    5. ユーザの追加
    6. 動作確認
    7. 参考資料
    パッケージのダウンロード

    Messaging Server 7.0 は、Communications Suite 6 に含まれておりますので、 Sun Download Center より Communications Suite 6 をダウンロードします。

              尚、インストールは面倒だけど、今すぐ試してみたいという方の為に、VMware のイメージも配布されています。
              英語環境のイメージとなってしまいますが、インストールを飛ばしてすぐに Communications Suite 6 をお試しいただけます。

              VMware イメージの説明

    Messaging Server の動作に最低限必要なコンポーネントは以下になります。

    • Java Enterprise System
      • Directory Server
    • Communicatoins Suite
      • Messaging Server 7.0 (32bit or 64bit)
      • DSsetup

    また、Delegated Administrator というドメイン・ユーザ・グループ管理用の Web 管理ツールを使用するためには、下記のコンポーネントが必要になります。

    • Java Enterprise System
      • Access Manager
        • Web コンテナ (Web Server or Application Server)
    • Communicatoins Suite
      • Delegated Administrator
        • Web コンテナ (Web Server or Application Server)

    今回は、後ほど Sun Convergence(新しい WebMail アプリケーション) をインストールする事を考えて、Convergence が唯一サポートしている Application Server 9.1 を Web コンテナに使用しましょう。
    したがって、先ほどのサイトより下記をダウンロードしておいてください。

    • SunJava_CommsInstaller_Suite6_solaris-sparc.zip
    • sjsas_ee-9_1_01-solaris-sparc-ml.bin
    • DSEE.6.3.Solaris-Sparc-full.tar.gz
    • java_es-5u1-ga-solaris-sparc.zip

    事前確認
    1. 正しく DNS クライアントとして設定されている事を確認してください。
    2. /etc/hosts に FQDN を記載します。また、FQDNが、ホスト名より前に来るようにします。
     # cat /etc/hosts 
     #Internet host table
     127.0.0.1       localhost
     10.14.11.89     sw-89.japan.sun.com     sw-89   loghost
    
    インストール手順
    1. Application Server 9.1 のインストール
     sw-89# pwd
     sw-89# ls
     sw-89# chmod +x sjsas_ee-9_1_01-solaris-sparc-ml.bin
     sw-89# ./sjsas_ee-9_1_01-solaris-sparc-ml.bin -console
    
              リンク : 詳細ログ

              \* Application Server の起動
     sw-89# /opt/SUNWappserver/bin/asadmin start-domain domain1
    
              \* Application Server の管理画面の URL
              例) https://sw-89.japan.sun.com:4848/
    1. Directory Server 6.3 のインストール
     sw-89# pwd
     /var/tmp/sjsms/DSEE
     sw-89# ls
     DSEE.6.3.Solaris-Sparc-full.tar.gz
     sw-89# gzcat DSEE.6.3.Solaris-Sparc-full.tar.gz| tar xf -
     sw-89# ls
     DSEE.6.3.Solaris-Sparc-full.tar.gz
     DSEE_Directory_Editor
     DSEE_Identity_Synchronization_for_Windows
     DSEE_ZIP_Distribution
     LICENSE.txt
     Legal
     README.txt
     sw-89# cd DSEE_ZIP_Distribution
     sw-89# ls
     dsee_data    dsee_deploy  idsktune
     sw-89# ./dsee_deploy install -i /opt/SUNWdsee
    
              リンク : 詳細ログ

              \* Directory Server Instance の作成
     sw-89# mkdir /var/opt/SUNWdsee
     sw-89# cd /opt/SUNWdsee/ds6/bin
     sw-89# ./dsadm create -p 389 -P 636 /var/opt/SUNWdsee/dsins1
     Directory Manager パスワード を選択:
     Directory Manager パスワード を確認:
     インスタンスを起動するには「dsadm start '/var/opt/SUNWdsee/dsins1'」を使用します
    
              \* Directory Insrance の起動
     sw-89# ./dsadm start /var/opt/SUNWdsee/dsins1
     Directory Server インタンス '/var/opt/SUNWdsee/dsins1' が起動されました: pid=13917
     sw-89# ./dsconf create-suffix -h sw-89 -p 389 o=isp
     サーバーから提示された証明書「CN=sw-89, CN=636, CN=Directory Server, O=Sun Microsystems」は信頼できません。
     受け入れは「Y」、1 回だけ受け入れは「y」、拒否は「n」、詳細を表示は「d」を入力: Y
     「cn=Directory Manager」のパスワードを入力:
     sw-89#
    
    1. Access Manager のインストール
     sw-89# pwd
     /var/tmp/sjsms/JES5u1
     sw-89# ls
     java_es-5u1-ga-solaris-sparc.zip
     sw-89# unzip -q java_es-5u1-ga-solaris-sparc.zip
     sw-89# ls
     Copyright                         Solaris_sparc
    
     License                           java_es-5u1-ga-solaris-sparc.zip
     README
     sw-89# cd Solaris_sparc
     sw-89# ls
     Product       installer     release_info
     sw-89# ./installer -nodisplay
    
              リンク : 詳細ログ

              \* Access Manager の管理画面の URL
              例) http://sw-89.japan.sun.com/amconsole
    1. Messaging Server 7.0, DSsetup, Delegated Administrator のインストール
              \* mailsrv ユーザの作成
     sw-89# grep mail /etc/group
     mail::6:root
     sw-89# useradd -u 7633 -g mail -d /export/home/mailsrv -m mailsrv
     64 ブロック
     sw-89#
    
              \* sendmail の停止
     sw-89# svcadm disable sendmail
     sw-89# 
    
              \* Communications Suite パッケージ(MS7,DSsetup, DA) のインストール
     sw-89# pwd
     /var/tmp/sjsms/Comms6
     sw-89# ls
     SunJava_CommsInstaller_Suite6_solaris-sparc.zip
     sw-89# unzip -q SunJava_CommsInstaller_Suite6_solaris-sparc.zip
     sw-89# ls
     Legal_Folder
     README
     SunJava_CommsInstaller_Suite6_solaris-sparc.zip
     SunOS_sparc
     commpkg
     sw-89# ./commpkg install
    
              リンク : 詳細ログ
    初期設定
    1. Messaging Server 向けに Directory Server を構成する
              \* スキーマの選択
              Sun Java System Messaging Server では、ドメイン・ユーザのための LDAP
              スキーマとして、Schema 1, 1.5, 2 が用意されています。
              Schema1 は、Messaging Server 5.2 までに使われていたスキーマ
              Schema2 は、Messaging Server 6.0 から使われているスキーマ
                Access Manager 等のコンポーネントと組み合わせる場合 2 が必須
              Schema 1.5 は、1 から 2 への移行時のための互換スキーマ
              となりますが、今回は、Schema2 を使用しましょう。
     sw-89# pwd
     /opt/sun/comms/dssetup/sbin
     sw-89# ls
     comm_dssetup.pl  schema
     sw-89# /usr/bin/perl comm_dssetup.pl
    
              リンク : 詳細ログ
    1. Delegated Administrator の初期設定
     sw-89# pwd
     /opt/sun/comms/da/sbin
     sw-89# ls
     config-commda       config-servicetags  getEncode
     sw-89#
    
              リンク : 詳細ログ

              \* Applicatoin Server の再起動
     sw-89# /opt/SUNWappserver/bin/asadmin stop-domain domain1
     ドメイン domain1 が停止しました。
     sw-89# /opt/SUNWappserver/bin/asadmin start-domain --user admin domain1
     ドメイン domain1 を起動しています。お待ちください。
     ログは /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトされます。
     管理パスワードを入力してください>
     マスターパスワードを入力してください>
     出力を /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトしています
     ドメイン domain1 が起動しました。
     ドメイン [domain1] はその設定で [Sun Java System Application Server 9.1_01 (build local)] を実行しています。ログは [/opt/SUNWappserver/domains] にあります。
     管理コンソールは [https://localhost:4848] で使用できます。
     "asadmin" コマンドにも同じポート [4848] を使用します。
     ユーザーの Web アプリケーションは次の URL で使用できます:
     [http://localhost:80 https://localhost:8181 ]。
     次の web-contexts を使用できます:
     [/web1  /__wstx-services amserver ampassword amcommon amconsole /da /commcli ]。
     標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL:
     [service:jmx:rmi:///jndi/rmi://sw-89.japan.sun.com:8686/jmxrmi] に接続できます。
     ドメインは少なくとも次のポートで接続を待機しています:
     [80 8181 4848 3700 3820 3920 8686 ]。
     ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。
     
     sw-89#
    
              \* デフォルトドメインで mail サービスを有効にする
     sw-89# /opt/sun/comms/da/bin/commadmin domain modify -D admin \\
     -w adminpass -X sw-89.japan.sun.com -n japan.sun.com -p 80 \\
     -d japan.sun.com -S mail -H sw-89.japan.sun.com
     OK
     
    
     sw-89#
    
              \* Delegated Administrator の URL
              例) http://sw-89.japan.sun.com/da/DA/Login
    1. Messaging Server の初期設定
     sw-89# pwd
     /opt/sun/comms/messaging64/sbin
     sw-89# ls
     MoveUser              iminitquota           msgcert
     UpgradeMsg5toMsg7.pl  immonitor-access      patch-config
     config-mfwk           imquotacheck          readership
     config-servicetags    ims_db_upgrade        reconstruct
     config-vcsha          imsbackup             refresh
     configure             imsconnutil           rehostuser
     configutil            imscripter            relinker
     counterutil           imsexport             setconf
     deliver               imsimport             showconfig
     getconf               imsimta               showlog
     grep                  imsrestore            spfquery
     ha_ip_config          install-newconfig     start-msg
     hashdir               less                  stop-msg
     help                  ls                    uninstall-newconfig
     imarchive             mboxutil              useconfig
     imcheck               migrate-config        writeconfig
     imdbverify            mkbackupdir
     imexpire              msgadm
     sw-89# ./configure -nodisplay
    
              リンク : 詳細ログ

              \* webmail ポートの変更
     sw-89# /opt/sun/comms/messaging64/bin/configutil -o service.http.port -v 2080
     OK SET
     sw-89#
    
              \* Messaging Server の起動
     sw-89# /opt/sun/comms/messaging64/bin/stop-msg
     Connecting to watcher ...
     Warning: Cannot connect to the watcher process
     job_controller server is not running
     dispatcher server is not running
     sched server is not running
     http server is not running
     pop server is not running
     imap server is not running
     purge server is not running
     store server is not running
     sw-89# /opt/sun/comms/messaging64/bin/start-msg
     Connecting to watcher ...
     Launching watcher ... 28506
     Starting store server .... 28507
     Checking store server status ...... ready
     Starting purge server .... 28508
     Starting imap server .... 28509
     Starting pop server .... 28510
     Starting http server ...... 28511
     Starting sched server ... 28512
     Starting dispatcher server .... 28514
     Starting job_controller server .... 28520
     sw-89#
    
    ユーザの追加
     sw-89# /opt/sun/comms/da/bin/commadmin user create -D admin -F One \\
     -l test1 -L Test -n japan.sun.com -p 80 -w adminpass -W test1 \\
     -X sw-89.japan.sun.com -S mail -E test1@japan.sun.com \\
     -H sw-89.japan.sun.com
     OK
     
     sw-89#
    
     sw-89# /opt/sun/comms/da/bin/commadmin user create -D admin -F Two \\
     -l test2 -L Test -n japan.sun.com -p 80 -w adminpass -W test2 \\
     -X sw-89.japan.sun.com -S mail -E test2@japan.sun.com \\
     -H sw-89.japan.sun.com
     OK
     
     sw-89#
    
    動作確認
     \* 送信テスト 1 (from test1 to test2)
    
     sw-89# telnet localhost 25
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '\^]'.
     220 sw-89.japan.sun.com -- Server ESMTP (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
     ehlo localhost
     250-sw-89.japan.sun.com
     250-8BITMIME
     250-PIPELINING
     250-CHUNKING
     250-DSN
     250-ENHANCEDSTATUSCODES
     250-EXPN
     250-HELP
     250-XADR
     250-XSTA
     250-XCIR
     250-XGEN
     250-XLOOP E273F53846A54D1B07DF41E33EBB8C23
     250-ETRN
     250-NO-SOLICITING
     250 SIZE 0
     mail from: test1@japan.sun.com
     250 2.5.0 Address Ok.
     rcpt to: test2@japan.sun.com
     250 2.1.5 test2@japan.sun.com OK.
     data
     354 Enter mail, end with a single ".".
     From: test1@japan.sun.com
     To: test2@japan.sun.com
     Subject: test from test1 to test2
     
     This is a test message.
     .
     250 2.5.0 Ok, envelope id 0K7P00M0395F0700@sw-89.japan.sun.com
     quit
     221 2.3.0 Bye received. Goodbye.
     Connection to localhost closed by foreign host.
    
     \* 送信テスト 2 (from test2 to test1)
    
     sw-89# telnet localhost 25
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '\^]'.
     220 sw-89.japan.sun.com -- Server ESMTP (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
     ehlo localhost
     250-sw-89.japan.sun.com
     250-8BITMIME
     250-PIPELINING
     250-CHUNKING
     250-DSN
     250-ENHANCEDSTATUSCODES
     250-EXPN
     250-HELP
     250-XADR
     250-XSTA
     250-XCIR
     250-XGEN
     250-XLOOP E273F53846A54D1B07DF41E33EBB8C23
     250-ETRN
     250-NO-SOLICITING
     250 SIZE 0
     mail from: test2@japan.sun.com
     250 2.5.0 Address Ok.
     tcpt to: test1@japan.sun.com
     500 5.5.1 Unknown command "tcpt to: test1@japan.sun.com" specified
     rcpt to: test1@japan.sun.com
     250 2.1.5 test1@japan.sun.com OK.
     data
     354 Enter mail, end with a single ".".
     From: test2@japan.sun.com
     To: test1@japan.sun.com
     Subject: test from test2 to test1
     
     This is a test message.
     .
     250 2.5.0 Ok, envelope id 0K7P00M069760700@sw-89.japan.sun.com
     quit
     221 2.3.0 Bye received. Goodbye.
     Connection to localhost closed by foreign host.
     sw-89#
    
     \* 受信テスト 1 (by test1)
    
     sw-89# telnet localhost 110
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '\^]'.
     +OK sw-89.japan.sun.com POP3 service (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
     user test1
     +OK Name is a valid mailbox
     pass test1
     +OK Maildrop ready
     list
     +OK scan listing follows
     1 617
     .
     retr 1
     +OK 617 octets
     Return-path: 
     Received: from localhost ([127.0.0.1])
      by sw-89.japan.sun.com (Sun Java(tm) System Messaging Server 7.0-0.04 64bit
      (built Jun 20 2008)) with ESMTP id <0K7P00M0596V0700@sw-89.japan.sun.com> for
      test1@japan.sun.com; Wed, 24 Sep 2008 21:26:48 +0900 (JST)
     Original-recipient: rfc822;test1@japan.sun.com
     Date-warning: Date header was inserted by sw-89.japan.sun.com
     Date: Wed, 24 Sep 2008 21:26:43 +0900 (JST)
     Message-id: <0K7P00M069760700@sw-89.japan.sun.com>
     From: test2@japan.sun.com
     To: test1@japan.sun.com
     Subject: test from test2 to test1
     
     This is a test message.
     .
     quit
     +OK
     Connection to localhost closed by foreign host.
     sw-89#
    
     \* 受信テスト 2 (by test2)
    
     sw-89# telnet localhost 110
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '\^]'.
     +OK sw-89.japan.sun.com POP3 service (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
     user test2
     +OK Name is a valid mailbox
     pass test2
     +OK Maildrop ready
     list
     +OK scan listing follows
     1 617
     .
     retr 1
     +OK 617 octets
     Return-path: 
     Received: from localhost ([127.0.0.1])
      by sw-89.japan.sun.com (Sun Java(tm) System Messaging Server 7.0-0.04 64bit
      (built Jun 20 2008)) with ESMTP id <0K7P00M029530700@sw-89.japan.sun.com> for
      test2@japan.sun.com; Wed, 24 Sep 2008 21:25:36 +0900 (JST)
    
     Original-recipient: rfc822;test2@japan.sun.com
     Date-warning: Date header was inserted by sw-89.japan.sun.com
     Date: Wed, 24 Sep 2008 21:25:27 +0900 (JST)
     Message-id: <0K7P00M0395F0700@sw-89.japan.sun.com>
     From: test1@japan.sun.com
     To: test2@japan.sun.com
     Subject: test from test1 to test2
     
     This is a test message.
     .
     quit
     +OK
     Connection to localhost closed by foreign host.
     sw-89#
    
    以上で、Messaging Server 7.0 のインストールおよび初期設定が完了しました。

    参考資料

    次回は、新しくなった WebMail、Sun Convergence をインストールしてみましょう。

    水曜日 8 27, 2008

    SJSMS - Milter プログラムを使ってみよう

    Sun Java System Messaging Server 6.3 では、sendmail や、Postfix 等で Virus/Spam フィルタ 機能としてよく使われている Sendmail Content Management API をベースとした、Milter (Mail Filter の略) プログラムと連係動作する事が可能となっています。

    ・参考 Sun Java Communications Suite 5 リリースノート

    という事で、今回はこの機能を試して見ましょう。

    まずは、www.milter.org よりサンプルプログラムを取得します。

    ・リンク A Sample Filter

    今回は、これをコンパイルして使うのですが、ひとつ注意点があります。
    SJSMS では、Sendmail 8.13.X milter protocol のみのサポートなり、 上記サンプルプログラムで使用されている xxfi_negotiate() がサポート されていません。

    ・参考 About milter plugin
    ・参考 Sendmail - 8.14.0 - release notes

    ですので、サンプルプログラムの以下の部分をコメントアウトしましょう。

    ・コメントアウトする箇所1
     /\* xxfi_negotiate is not supported by 8.13
      sfsistat
     
      xxfi_negotiate(ctx, f0, f1, f2, f3, pf0, pf1, pf2, pf3)
             SMFICTX \*ctx;
             unsigned long f0;
             unsigned long f1;
             unsigned long f2;
             unsigned long f3;
             unsigned long \*pf0;
             unsigned long \*pf1;
             unsigned long \*pf2;
             unsigned long \*pf3;
      {
              return SMFIS_ALL_OPTS;
      }
      \*/
    
    ・コメントアウトする箇所2
     struct smfiDesc smfilter =
     {
       (省略)
     /\* xxfi_negotiate is not supported by 8.13 \*/
     //        xxfi_negotiate        /\* Once, at the start of each SMTP connection \*/
     
     };
    
    上記がコメントアウト出来たら、milter.org を参考にコンパイルします。
     $ /usr/sfw/bin/gcc -I/usr/include -c sample.c
     sample.c:808: warning: excess elements in struct initializer
     sample.c:808: warning: (near initialization for `smfilter')
     sample.c:810: warning: excess elements in struct initializer
     sample.c:810: warning: (near initialization for `smfilter')
     $ ls sample.o
     sample.o
     $
     $ /usr/sfw/bin/gcc -o samplefilter sample.o -L/usr/lib -lmilter -pthreads
     $ ls samplefilter
     samplefilter
     $
    
    上記で、Milter Server のプログラムが作成されましたので、この プログラムを実行させておきましょう。
     # ./samplefilter -p inet:3333 -r test1@Japan.Sun.COM &
     ※ 上記の起動方法で受け取りアドレスが test1@Japan.Sun.COM となっている
        メールをリジェクトする動作となります。
        詳しくは、上記サンプルプログラムのサイトをご確認下さい。
    
    次に以下のドキュメントを参考に SJSMS を上記の Milter Server に接続させる 設定を行います。

    ・参考 Sun Java System Messaging Server 6.3 管理ガイド

    1. /opt/SUNWmsgsr/config/option.dat に以下の記述を追加
        !
        ! for milter
        spamfilter1_library=/opt/SUNWmsgsr/lib/libmilter.so
        spamfilter1_config_file=/opt/SUNWmsgsr/config/milter.opt
        spamfilter1_string_action=data:,$M
    
    2. /opt/SUNWmsgsr/config/milter.opt を作成し、以下を記述
        HOST=localhost
        PORT=3333
        DEBUG=2
        TIMEOUT=10
    
    3. /opt/SUNWmsgsr/config/imta.cnf を編集し、Milter によるフィルタリング を行いたいチャネルに "destinationspamfilter1optin milter" を追加
        ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m" "pt30m" "pt1h" 
        "pt2h" "pt4h" maxjobs 2 pool IMS_POOL fileinto $U+$S@$D slave_debug master_debug 
        destinationspamfilter1optin milter
    
    4. SJSMS の設定をコンパイル・再起動します
        # imsimta cnbuild
        # stop-msg smtp
        Connecting to watcher ...
        Stopping job_controller server 26592 .... done
        Stopping dispatcher server 26585 ... done
        # start-msg smtp
        Connecting to watcher ...
        Starting dispatcher server .... 6272
        Starting job_controller server .... 6278
        #
    
    それでは、実際に動作確認をして見ましょう。
     # telnet localhost 25
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '\^]'.
     220 sw-82 -- Server ESMTP (Sun Java(tm) System Messaging Server 6.3-5.02 (built Oct 12 2007; 32bit))
     ehlo
     (省略)
     250 SIZE 0
     mail from: test1@japan.sun.com
     250 2.5.0 Address Ok.
     rcpt to: test1@japan.sun.com
     550 5.7.0 Milter rejected recipient [slot 1]: test1@japan.sun.co
    
    正しく、test1@Japan.Sun.COM 宛てのメールがリジェクトされました。

    この様に、一部制限はありますが、Milter も SJSMS で利用可能となっておりますので、 使用したい Milter サーバがありましたら、是非試してみてください。

    ※ 念のため、libmilter を利用してユーザ様自ら開発された、Milter サーバや、 オープンソースの Milter サーバ自体を Sun にてサポートしているわけでは無い事をご注意ください。

    月曜日 5 26, 2008

    SJSMS - メールボックスの制限容量通知メールを日本語にしよう!

    Sun Java System Messaging Server (以下 SJSMS) では、 ユーザのメールボックスに制限容量を設ける事が出来ます。
    制限容量を設定している場合、メールボックスの容量が 制限値に近づいた際に通知メールを出すように設定したい ですよね。
    SJSMS では、ドキュメントにも記載されている通り、以下の 手順にて通知メールを設定できます。
    1. 制限容量通知の有効化
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotanotification -v yes
      
    2. 通知メッセージの設定
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotaexceededmsg -v 'message'
      
    3. 制限容量の閾値の指定
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotawarn -v 90 # パーセント
      

    実は、この手順は英語メッセージの設定手順となり、日本語 メッセージを設定する為には、2. のパラメータとして store.quotaexceededmsg;lang-ja を使用する必要があります。
    したがって、日本語通知メッセージを設定する為には、以下の 手順を行う必要があります。
      1. 制限容量通知の有効化
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotanotification -v yes
      
      2. 通知メッセージの設定
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotaexceededmsg;lang-ja -v 'message'
      
      3. 制限容量の閾値の指定
      # /opt/SUNWmsgsr/sbin/configutil -o store.quotawarn -v 90 # パーセント
      
    では実際に日本語通知メッセージを設定してみましょう。

    # /opt/SUNWmsgsr/sbin/configutil -p store.quota\\\*
    store.quotaenforcement = on
    store.quotaexceededmsginterval = 7
    store.quotagraceperiod = 120
    store.quotanotification = off
    store.quotawarn = 90
    
    # /opt/SUNWmsgsr/sbin/configutil -o store.quotanotification -v on
    OK SET
    # /opt/SUNWmsgsr/sbin/configutil -o store.quotaexceededmsg\\;lang-ja -v \\
    "From: メール管理者 <Postmaster@domain.co.jp>\\$Subject: \\
    制限容量通知\\$\\$[ID]さん\\$\\$あなたのメールボックスのサイズは\\
    割り当てられた容量の [PERCENT] パーセントに達しています。\\
    \\$\\$Disk 使用量: [DISKUSAGE]\\$メッセージ数: [NUMMSG]\\$容量\\
    制限値:[QUOTA]\\$メッセージ数制限値: [MSGQUOTA]\\$\\$---\\$メール\\
    サーバ管理者"
    OK SET
    # /opt/SUNWmsgsr/sbin/configutil -o store.quotawarn -v 1
    OK SET
    # iminitquota -a
    admin: ok
    hoge: updated
    test1: updated
    
    ここでお気づきかと思いますが、 'message' の部分は基本的に RFC822 のメール形式に従っていますので、メールヘッダの部分 も記載可能です。
    From を指定しないと、デフォルトで以下の From が挿入されます。

     From: Mail Administrator <postmaster@domain.co.jp>
    
    From を指定して、差出人に日本語を含める事で、一般 ユーザの驚き(そして、「見なかった事」)を軽減してあげる事が できると思います。

    今回の例の様に、日本語メッセージを設定することで、以下の様に SJSMS 内部では UTF-8 に変換された日本語メッセージが格納されます。 そして、実際にメールが送付される際に、ISO-2022-JP のメールに変換されて送付されます。

    # auto_ef /opt/SUNWmsgsr/config/msg.conf
    UTF-8
    # iconv -f UTF-8 -t EUC-JP /opt/SUNWmsgsr/config/msg.conf | grep quotaexceededmsg\\;lang-ja
    
    store.quotaexceededmsg;lang-ja = "From: メール管理者 <Postmaster@domain.co.jp>$Subject: 制限容量通知$$[ID]さん$$あなたのメールボックスのサイズは割り当てられた容量の [PERCENT] パーセントに達しています。$$Disk 使用量: [DISKUSAGE]$メッセージ数: [NUMMSG]$容量制限値:[QUOTA]$メッセージ数制限値: [MSGQUOTA]$$---$メールサーバ管理者"
    
    ですので、UTF-8 にしか存在しない文字を使ってしまうと、ISO-2022-JP に変換されず、UTF-8 のまま送信されてしまいますので、ご注意ください。


    • 補足
    From ヘッダの変換も SJSMS に任せた場合、一部メールクライアントで 正常に日本語を表示できない場合もあるようです。
    その場合は、以下のように直接エンコードされた From ヘッダを与える 事で、日本語表示をしてくれます。

    # cat /var/tmp/From-encode.pl
    #!/usr/bin/perl
    
    use MIME::Base64;
    
    $headertoencode = <STDIN>;
    print encode_base64($headertoencode);
    # printf "メール管理者" | euctojis | perl /var/tmp/From-encode.pl
    GyRCJWEhPCVrNElNfTxUGyhK
    # /opt/SUNWmsgsr/sbin/configutil -o store.quotaexceededmsg\\;lang-ja -v \\
    "From: =?ISO-2022-JP?B?GyRCJWEhPCVrNElNfTxUGyhK?= <Postmaster@domain.co.jp>\\
    \\$Subject: 制限容量通知\\$\\$[ID]さん\\$\\$あなたのメールボックスのサイズは\\
    割り当てられた容量の [PERCENT] パーセントに達しています。\\
    \\$\\$Disk 使用量: [DISKUSAGE]\\$メッセージ数: [NUMMSG]\\$容量\\
    制限値:[QUOTA]\\$メッセージ数制限値: [MSGQUOTA]\\$\\$---\\$メール\\
    サーバ管理者"
    

    RFC: 2047 によると encoded-word は以下のように書きます。

    "=?" charset "?" encoding "?" encoded-text "?="
    
    したがって、上記の例では、"=?ISO-2022-JP?B?" と "?=" の間に、JIS コードの 日本語を、BASE64 エンコードしたものを入れました。
    About

    Search

    Archives
    « 4月 2014
      
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
       
           
    今日