<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end>  <dfn><ruby>manakai<rt>まなかい</rt></ruby></dfn> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">822</anchor> メッセージ (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メイル</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子ニュース</anchor>のメッセージ)
や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>などを取扱うためのモジュール群です。</p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">この wiki 頁の内容は古くなっています。 Web サイト
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://suika.suikawiki.org/www/manakai-core/doc/web/">https://suika.suikawiki.org/www/manakai-core/doc/web/</anchor-external> をご覧ください。 </ed><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> Perl で使える 822/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> 処理モジュールは他にも色々ありますが、
どれも不必要にプロトコルを意識することなく使えるものとは言えません。
たとえば、 <code class="822"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">From</anchor></code> 欄の 
<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">display-name</anchor></code> の値を指定する時に
<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor></code> と <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor></code>
は自動的にどちらが適当か選んで欲しいですし、
本文が <code class="charset"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-2022-JP</anchor></code> でも
<code class="charset"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></code> でも外側からは同じように扱える方が嬉しいです。</p><p>manakai の <code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message::Entity</anchor></code> 系モジュール群がこれを実現します。</p><section><h1>主な構成モジュール</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> いつの間にか大所帯化していますが...<ul><li><code class="perl">Message::Entity</code> 系: 822 メッセージを扱います。</li><li><code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message::Markup::XML</anchor></code> 系: 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 文書を扱います。</li><li><code class="perl" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message::DOM</anchor></code>系:
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>の実装です。</li><li><code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message::Util::Formatter</anchor></code> 系:
雛形と引数から結果を作るための汎用モジュール群です。</li><li><code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message::Util::Error</anchor></code> 系:
<code class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Error</anchor></code> モジュールの subclass
で、誤りの型 (種類) を定義して使うことができます。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dis</anchor>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>本体のコード、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">試験</anchor>用コードなどを統合的に管理するシステムです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakai</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>実装や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dis</anchor>自体も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dis</anchor>で記述されています。</li><li>その他: 支援モジュールなど。</li></ul></p></section><section><h1>入手</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> CVS repository から入手できます。</p><p><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="SuikaCVS:&quot;messaging/manakai/&quot;">IW:SuikaCVS:&quot;messaging/manakai/&quot;</anchor-external></p><p>通常は幹の先端をどうぞ。
大規模な実験はたまに枝でやってます。
安定版は今はありません。
詳しくは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakai//CVS</anchor> をご覧下さい。</p></section><section><h1>ライセンス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">perlと同じライセンス</anchor>です。</p><p>新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>は、諸般の都合により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">perlと同じライセンス</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MPL</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GPL</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LGPL</anchor>から選択できるようになっています。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end>
この wiki の manakai//* の文書群の中には古いものが多いので注意してください。</p><p>Message::Entity 系 (Message::Field::*, Message::MIME::* など) の開発は現在停止状態です。一応一通り使える状態にはなっています。 (開発者は普段メイル書くのに使っているらしいです。)
この系統は pod がいい加減なので何とかしたいと思っていますが手が回りません。
内部構造も大改造したいのですが、
当分先になるでしょう。</p><p>Message::Util::Formatter や Message::Util::Error は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SuikaWiki 3</anchor> で大々的に使っているので最近までちょくちょくいじっていましたが、大分安定してきました。</p><p>Message::Markup::XML 系も SuikaWiki
で使っています。
こちらは今 Parser 書きなおし中です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> が微妙に実装してありますが使い物にならないので Parser ができたらなんとかします。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2004-04-25 11:52:18 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">wakaba/manakai: (OBSOLETE: See http://manakai.github.io/ ) manakai - Perl modules for Web and Email standards</cite>, <time>2023-04-18T06:28:10.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/wakaba/manakai">https://github.com/wakaba/manakai</anchor-external></p></section></body></html>