リンク

お知らせ

2008/11/15
新しいリリースを出しました。Snow Leopardで動きが微妙な箇所をともかくクリアし、Snow Leopard完全対応です。
2008/5/3
新しいリリースを出しました。/var/mailディレクトリにメールが行ってしまっても定期タスクで復活できるようにしました。
2009/4/26
サイトをリニューアルしました。ただし、リンク切れしている箇所があちらこちらにあるかと思いますが、しばらくの間はお許しください。理由などはblogに記載しました。
2008/4/16
新しいリリースを出しました。小幅な修正のみです。
2008/10/19
新しいリリースを出しました。機能的には変わりません。
2008/6/16
.Macのグループの利用は凍結し、OME blogでの開発者および利用者のコミュニケーションをさせていただくことにしました。
2007/12/9
添付ファイルとしてフォルダを指定すれば、自動的に圧縮して添付して送信するようになりました。
2007/10/26
Quick Lookプラグインが追加されました。Leopard発売と同時に、OMEはその新機能に対応します。
2007/10/7
Cocoa-JavaのアプリケーションがいくつかありましたがそれらをObjective-Cで作り、JavaがCocoaを使う場面をなくしました。
2007/9/3
6月くらいのリリースからだと思われますが、Spotlightプラグインが正しくしませんでしたが、このリリースにより正しく動作するようになりました。インストーラを改善しました。
2007/7/15
イレギュラーなメールの処理や、添付ファイルを中心としたさまざまなバグ修正を行ったバージョンをリリースしました。
2007/6/3
メール参照機能をアップデートなどしたリリースを公開しました。
2007/5/13
バグ修正を中心としたリリースを出しました。
2007/4/21
「OMEメール参照」をアップデートしWebKitベースにしました。表示内容のカスタマイズがより容易になりました。
2007/1/2
Universal Binary版のリリースを行いました。また、フレームワークベースに移行するなど内容にかなり手を入れました。

OME for PHP


 OMEの他のコンポーネントとは全く関連がありませんが、PHPで使えるメール送信用のクラスを作ったときに、同じ名前にしてしまおうと考え、「OME.php」という名前にしました。もともとは、「メール送信システムの作り方大全」(ソフトバンク刊)の書籍で、PHPでのメール送信のやりかたをあれこれ解説したときに作ったプログラムを、自分で作っているアプリケーションなどで利用できるようにきちんとクラスにしたものです。現在配布されているものは、2003〜4年頃に作り始めたもので、PHP4の時代に作ったものです。PHP5でも利用可能です。

入手方法と動産環境

 ソースコードはSubversionで公開しており、ViewCVできれいに見せています。そこからのダウンロードは、ここをクリックして行ってください。ダウンロードされず、ウインドウに表示された場合はそのまま「OME.php」というファイルで保存をすれば概ね大丈夫です。このファイルは日本語でコメント付けされており、文字コードはEUC-JPです。

 動作環境は、PHPのオリジナルのmail関数が使えることと、mbstringライブラリが使えるようになっていることです。これらが正しく使える場合にはOME.phpは利用できます。UNIX系OSの場合は、多くの場合に稼働すると思いますが、sendmailコマンドが正しく稼働するかどうかをチェックしましょう。Windows系OSの場合は、php.iniのSMTP=...の設定が正しくなされている事と、mbstringのライブラリのDLLが利用できるようになっているかを調べてください。

使用方法

 OME.phpを作った理由は明白で、「何も考えなくても日本語環境に即したエンコードをしたメールを送る」ということです。逆に言えば、他の言語のメールについては全くサポートされていないと考えてください。英語のメールは問題ないとは思われますが、中国語や韓国語には対応していません。

mbstringに関する設定

 PHPのプログラムの最初などに、以下のような記述を入れてください。プログラムはmb_send_mail関数を使うので、mbstringの機能を使うことになります。エンコードは、UTF-8ないしはEUC-JPを使います。

        
mb_language( 'ja' );
mb_internal_encoding('UTF-8');

      

通常のメール送信

 以下が典型的な1つの例です。送信者、受信者、タイトルを設定し、本文に設定します。本文は何もしなくても72バイトごとに改行されます。最後に、sendメソッドを使って送信します。

        
$oneMail = new OME;
$oneMail->setFromField($frAddress, '送信者');
$oneMail->setToField($toAddress, '受信者');
$oneMail->setSubject("テストメールTestMailテストメール");
$body = "これはメールです。72バイトごとに改行しています。";
$body .= "This is English sentense, and word-wraping available.";
$oneMail->setBody("$body$body$body$body$body\n");
$oneMail->appendBody("$body$body$body$body$body\n");
$oneMail->appendBody("$body$body$body$body$body\n");
$oneMail->appendBody("$body$body$body$body$body\n");
if ( ! $oneMail->send() )
   echo $oneMail->getErrorMessage();

      

差し込み機能を使たメール送信

 メールの本文として、まずsetTemplateAsStringメソッドで、文字列で直接テンプレートの文字列を指定しています。これに対して、insertToTemplateメソッドを使う事で、引数の配列の要素を置き換えて、それを本文にします。つまり、@@1@@は「たぬき」、@@2@@は「きつね」、@@3@@は「ネコ」に置き換わり、結果的に本文は「最初はこれ:たぬき\n次はこれ:きつね\nさらにこれ:ネコ\n\nこの後は空白:\n\n」となります。この場合、@@4@@と@@5@@に対応する要素は与えられなかったので、これら置き換える文字列は自動的に消去されます。置き換え文字がなかったかどうかはsetTemplateAsStringメソッドの返り値がFALSEになることで分かります。そして送信しますが、送信時はテンプレートの文字列を置き換えた結果に対して、72バイトごとの改行は行います。

        
$oneMail = new OME;
$oneMail->setFromField($testAddress, 'Tester');
$oneMail->setToField($testAddress, 'Tester');
$oneMail->setSubject("テストメールTestMailテストメール");
$oneMail->setTemplateAsString("最初はこれ:@@1@@\n次はこれ:@@2@@\nさらにこれ:@@3@@\n\nこの後は空白:@@4@@@@5@@\n\n");
$oneMail->insertToTemplate(array("たぬき","きつね","ネコ"));
if ( ! $oneMail->send() )
   echo $oneMail->getErrorMessage();

      
2008年5月9日 更新