Postfix 3系の SMTPUTF8 を試してみた

こんにちは。サイオステクノロジー OSS サポート担当 N です。

RHEL の 標準 MTA として同梱されている Postfix ですが、2019/05/07 に RHEL8 がリリースされるあたって、Postfix のバージョンも 2.10 系から 3.3 系へとリベースされることとなりました。

変更点や追加機能の概要は、リリースノートや、Postfix コミュニティで公開されているアナウンスページなど (以下参照) を拝見していただくとして、

 ・Postfix feature overview
 http://www.postfix.org/features.html
 ・Postfix Announcements
 http://www.postfix.org/announcements.html

Postfix 3系に移行するにあたり、特筆すべき変更点の一つとして、国際化電子メールヘッダに対応するために導入された SMTPUTF8 拡張があります。

SMTPUTF8 拡張とは?

従来の E メール標準では、メールヘッダに使用できるのは ASCII 文字のみに制限されていました。
2012年に以下の RFC で定義された国際化電子メール “Internationalized Email” では、 UTF-8 エンコーディングを使用してメールヘッダに Unicode 文字を含めること、及びそれを SMTP プロトコルを介して転送することが許可されています。

 (rfc6531) SMTP Extension for Internationalized Email
 https://tools.ietf.org/html/rfc6531
 (rfc6532) Internationalized Email Headers
 https://tools.ietf.org/html/rfc6532
 (rfc6533) Internationalized Delivery Status and Disposition Notifications
 https://tools.ietf.org/html/rfc6533

Postfix の既存のバージョンでは、メールアドレスのローカルパート (@よりも前の部分) で使用される UTF-8 については既に対応していました。3系で実装された今回の SMTPUTF8 拡張では、メールアドレスのドメインパート (@よりも後ろの部分) で UTF-8 が使用できるよう対応されました。
(勿論 SMTP サーバ側・クライアント側の双方で SMTPUTF8 をサポートしている必要がありますがが)

これによって、「ユーザ@サイオステクノロジー.jp」のようにドメイン部に日本語を使用したメールアドレスを使用可能になります。

環境構成

 RHEL8.0
 postfix-3.3.1-8.el8.x86_64
 ホスト名:RHEL8.example.com

動作検証

(参考)
Postfix SMTPUTF8 support
http://www.postfix.org/SMTPUTF8_README.html

 

SMTPUTF8 の有効/無効は smtputf8_enable で制御します。
デフォルト値は yes のため、まずは一旦 no を設定して、従来の動作を確認します。

/etc/postfix/main.cf (最下部に追記)

設定を反映

同一サーバ上で localhost の 25番ポートに telnet で接続し、UTF8 文字を
FROM に含むメールを送信してみましょう。従来の仕様では、MAIL FROM の
ドメインパートに UTF8 文字が含まれる場合、syntax エラーになります。

この時、maillog では「Illegal address syntax from~」の warning が出力されました。

 

では、smtputf8_enable = no をコメントアウトし、SMTPUTF8 を有効化 (デフォルト) しましょう。

/etc/postfix/main.cf

設定を反映

同様に telnet でメールを送信します。

(※1)Postfix SMTP サーバでは、SMTP クライアントからの EHLO に対して、
  SMTPUTF8 をサポートしていることをアナウンスします。

(※2)SMTP クライアントから SMTPUTF8 リクエストを送信します。
  SMTPUTF8 が使用できるのは MAIL FROM もしくは VRFY コマンドのみです。
  →それ以外のコマンドで UTF8 を使用しようとすると、Unsupported option エラーになります。

  RCPT TO:ユーザ@サイオステクノロジー.jp SMTPUTF8
  555 5.5.4 Unsupported option: SMTPUTF8

この時、maillog には以下のように記録されます。無事、ローカルの mailuser ユーザへメール送信に成功しました。

最後に

現時点では例えば myhostname や mydomain では UTF8 に対応していないなど、まだまだ制限の多い機能ですが、今後はこれも修正される可能性が示唆されています。(http://www.postfix.org/SMTPUTF8_README.html#enabling)
今後のアップデートに期待ですね。

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*