- 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()でメールヘッダを設定しているだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $to = 'hoge@example.com' ; $subject = 'subject' ; $body = 'body' ; // ヘッダで重要度高を設定する $header = 'Priority: urgent' ; //$header = 'X-Priority: 1'; //$header = 'X-MsMail-Priority: High'; mb_language( 'ja' ); mb_send_mail( $to , $subject , $body , $header ); ?> |
このコードを実行すると、手元のBecky!では受信したメールに重要度高が設定されているのが確認できました。
どのヘッダを使用するかですが、Becky!では3つの内、どのヘッダを使用しても重要度が設定されていました。RFC1327で定義されているのは「Priority」なので、今後はこれを利用するのが良いでしょう。(対象のMUAが対応していればですが)
ちなみにBecky!自身で重要度を設定すると「X-Priority」と「X-MsMail-Priority」がヘッダに付加されていました。
今回は管理者向けメールなので受信するMUAが限定できました。様々なMUAに対応する際どのヘッダが対応しているかを調査する必要があるでしょう。
私自身はメールに重要度を設定しないので有用かどうかはあまりピンと来ませんが。:-p
- Newer: PHPSpecマニュアルが登場
- Older: CakePHP 公開する時はデバッグ情報を出さない
コメント (Close):5
- fujiba 07-11-10 (土) 0:22
-
#twitterではどうも。
Becky!は、MUAの中でも、ユーザーに優しい(だいたい、良きに計らってくれる)MUAなのであまり何も考えずに使えるんですよね。
一般的には、MUAとしてはOutlook(Express含む)あたりをターゲットにしつつ、RFC準拠にしておくとほぼ、救えると思います。もちろん、対象のデータによっては複数の表現を併用出来ないので頭を悩ませる所ですが・・・
それでも、最近はRFC準拠していればそれなりに解釈してくれるMUAが増えてきたのでいいですけどね・・・
- shinbara 07-11-10 (土) 1:53
-
どもども。
# 阪神以外の話しはお初のような;-)> 一般的には、MUAとしてはOutlook(Express含む)あたりをターゲットにしつつ、RFC準拠にしておくとほぼ、救えると思います。
ですね。多くのMUAに対応させる場合はヘッダを並べておくのが良さそうですね。阪神の先発を完投させるヘッダも教えて下さい。:-D
- fujiba 07-11-11 (日) 22:43
-
確かにお初ですな。<阪神ネタ以外。
阪神の先発は、JFKのフッタ(なのか?)で完結するようになっているので、無いそうです。(ほんまか?)
で、マジネタの方。
>多くのMUAに対応させる場合はヘッダを並べておくのが良さそうですね。
考えるのが面倒なときは、Becky!のマネをするのが一番良いというのが経験則でした。 - あーる 08-02-14 (木) 12:59
-
はじめまして。
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は訳すと「急を要する, 緊急の, 切迫した」という意味で、原文からも転送速度や配送に関するもののようです。
- shinbara 08-02-14 (木) 13:52
-
>あーるさん
コメントありがとうございます!> 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がどう認識してくれるかですね。
トラックバック:0
- このエントリーのトラックバックURL
- /blog/2007/11/php_mail_priority.html/trackback
- Listed below are links to weblogs that reference
- PHPでメールの重要度を設定する from Shin x blog