iPhone/iPadのホーム画面コンテスト開催中!賞品は iTunes カード!

PHP 2007/11/03 19:01

PHPでメールの重要度を設定する

システムから配信するメールに重要度を付けたいという話しがあったので調べてみました。

重要度を設定しておくと対応しているMUA(OutlookやらBecky!やら)ではメールの横にマークが付加されます。

分かったことは以下のとおり。

  • 重要度はメールヘッダで設定する。
  • 以前はX-PriorityやらX-MsMail-Priorityやらの独自ヘッダで設定し、MUAでは各々独自に処理していた。
  • RFC1327で重要度を表すPriorityヘッダが用意された。

重要度を設定する値はヘッダによって異なります。

ヘッダ 重要度高 重要度やや高 普通 重要度やや低 重要度低
X-Priotiry 1 2 3 4 5
X-MsMail-Priotiry High Normal Low
Priotiry urgent normal non-urgent

 

PHPでテストしてみました。mb_send_mail()でメールヘッダを設定しているだけです。

PHP:
  1. <?php
  2. $to = 'hoge@example.com';
  3. $subject = 'subject';
  4. $body = 'body';
  5.  
  6. // ヘッダで重要度高を設定する
  7. $header = 'Priority: urgent';
  8. //$header = 'X-Priority: 1';
  9. //$header = 'X-MsMail-Priority: High';
  10.  
  11. mb_send_mail($to, $subject, $body, $header);
  12. ?>

このコードを実行すると、手元のBecky!では受信したメールに重要度高が設定されているのが確認できました。

どのヘッダを使用するかですが、Becky!では3つの内、どのヘッダを使用しても重要度が設定されていました。RFC1327で定義されているのは「Priority」なので、今後はこれを利用するのが良いでしょう。(対象のMUAが対応していればですが)

ちなみにBecky!自身で重要度を設定すると「X-Priority」と「X-MsMail-Priority」がヘッダに付加されていました。

今回は管理者向けメールなので受信するMUAが限定できました。様々なMUAに対応する際どのヘッダが対応しているかを調査する必要があるでしょう。

私自身はメールに重要度を設定しないので有用かどうかはあまりピンと来ませんが。:-p



■Related Posts

5 Responses to “PHPでメールの重要度を設定する”

  1. on 10 11月 2007 at 00:22 1.fujiba said …

    #twitterではどうも。

    Becky!は、MUAの中でも、ユーザーに優しい(だいたい、良きに計らってくれる)MUAなのであまり何も考えずに使えるんですよね。
    一般的には、MUAとしてはOutlook(Express含む)あたりをターゲットにしつつ、RFC準拠にしておくとほぼ、救えると思います。

    もちろん、対象のデータによっては複数の表現を併用出来ないので頭を悩ませる所ですが・・・

    それでも、最近はRFC準拠していればそれなりに解釈してくれるMUAが増えてきたのでいいですけどね・・・

  2. on 10 11月 2007 at 01:53 2.shinbara said …

    どもども。
    # 阪神以外の話しはお初のような;-)

    > 一般的には、MUAとしてはOutlook(Express含む)あたりをターゲットにしつつ、RFC準拠にしておくとほぼ、救えると思います。
    ですね。多くのMUAに対応させる場合はヘッダを並べておくのが良さそうですね。

    阪神の先発を完投させるヘッダも教えて下さい。:-D

  3. on 11 11月 2007 at 22:43 3.fujiba said …

    確かにお初ですな。<阪神ネタ以外。

    阪神の先発は、JFKのフッタ(なのか?)で完結するようになっているので、無いそうです。(ほんまか?)

    で、マジネタの方。
    >多くのMUAに対応させる場合はヘッダを並べておくのが良さそうですね。
    考えるのが面倒なときは、Becky!のマネをするのが一番良いというのが経験則でした。

  4. on 14 2月 2008 at 12:59 4.あーる said …

    はじめまして。
    Beckyで重要度を高にしてメールすると、付加されるのは、

    X-Priority: 1
    X-MSMail-Priority: High
    Importance: High

    の三つのヘッダーです。
    RFC1327で確かにPriorityは規定されていますが、
    RFC2076をみると、「not for general usage」となっています。
    これに対して、Importnaceでは「RFC 1327 and RFC 1911,experimental」となっています。

    Priorityで用いられているurgentは訳すと「急を要する, 緊急の, 切迫した」という意味で、原文からも転送速度や配送に関するもののようです。

  5. on 14 2月 2008 at 13:52 5.shinbara said …

    >あーるさん
    コメントありがとうございます!

    > Importance: High
    ImportanceヘッダですがこれはBecky!2.45.00(2008/02/22)で実装されたみたいですね。
    http://www.rimarts.jp/b2board/b2board.cgi?tree=c37002gi%3Ftree%3Dc37002

    手元のBecky!2.44では重要度高のメールにImportanceヘッダは付いてないようです。
    またImportanceヘッダが付いたメールも重要度は認識されませんでした。

    > RFC2076
    確かにPriorityは「can influence transmission speed and delivery.」となっていますね。
    まあ「緊急」なら「重要度高」でしょうから意味合いとしては合っている気もします;-)
    # 厳密な意味としてはImportanceの方が適切っぽいのですが。

    PriorityにしろImportanceにしろ
    結局はMUAがどう認識してくれるかですね。

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply