ホーム » コンピュータ » Linux » replaced vertical whitespace in Subject header with space

システム

最近の投稿

アーカイブ

カテゴリー

replaced vertical whitespace in Subject header with space

自作のScriptを動かしていたら、

replaced vertical whitespace in Subject header with space;
this will become fatal in a future version at XXXX.pl line XXX.

なんて警告メッセージが表示される。色々調べてみると原因は、 Email::MIME パッケージ。

メールは、古臭い時代の名残りもあって、メールヘッダ1行は、 「最悪でも1000文字程度(出展?)で、普通は 78 文字より長くは しないほうがいい」という規定。

使っているメールの文字は、40文字程度だけれども、Subject部は、 MIMEエンコードされるから、簡単に長くなる。

検証コードと結果

#!/usr/bin/perl
use Email::MIME ;
use Jcode ;
print Email::MIME->create(
header => [
From => 'foo@bar.com' ,
To   => 'baz@bar.com' ,
Subject => Jcode->new( "...(たっぷり)...")->mime_encode ,
] ,
attributes => {
content_type => 'text/html' ,
charset      => 'ISO-2022-JP' ,
encoding     => '7bit' ,
} ,
body => "あいうえおabcde" )->as_string ;

これを動かすと、

replaced vertical whitespace in Subject header with space;
this will become fatal in a future version at zz.pl line 5.
From: foo@bar.com
To: baz@bar.com
Subject: =?ISO-2022-JP?B?...?= =?ISO-2022-JP?B?...?=
Date: Sun, 2 Mar 2014 22:42:40 +0900
MIME-Version: 1.0
Content-Type: text/html; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
あ...de

といった結果となる。 本来なら、MIME-Encode された長い行は、vertical whitespace(\n)で 折り返される。しかし、space に置き換えられて、 きわめて長い1行となっている。

実際、Email::MIME には

改めて、Email::MIME には、以下のように書いてある。

Revision history for Perl extension Email::Simple
2.203  2014-02-14 21:56:14-05:00 America/New_York
- translate vertical whitespace in headers
into horizontal whitespace, with a warning

今まで警告メッセージが表示されていなかったのは、2/14更新だからか…

いいのか?

ということで、改行を空白に置き換えてもいいのかなぁ…メールは正しく送られてはいるんだけど…

postfix の場合は….
line_length_limit (デフォルト: 2048 bytes) …
header_size_limit (デフォルト: 102400 bytes) ….
たしかに、今時のMTAは、そんなの正しく処理するようには思うけど…

ちなみに、 line-feed を vertical whitespace と呼ぶこともあるということを、初めて知った…

Google 検索

My Google   Yahoo

Microsoft

ファンサイト