|
そういうメールを意図的に作成してテストしたら、「=?iso-2022-jp?b?...」
のようにはなりませんでしたが、代わりに、utf-8文字コードのままでShift-JIS
に変換されない文字列が出てきてしまうようでした。
リモートメール一覧の場合はちょっと処理が違ってるのでこういうこともあり
えるのかなぁと思っていましたが、たしかにダメなケースがあるようです。
原因や対策を調べてみます。
ちなみにテストマクロ:
loaddll "tkinfo.dll";
question "テストメールを送信してからテストしますか?\n\n"
+ "(テストメールは現在選択してるメールの受信ログを加工して"
+ "「そのまま転送」で送ります。)";
if( result == yes ) {
#n = dllfunc("LoadAccountProp", dllfuncstr("CurrentAccount"));
$myemail = dllfuncstr("GetAccountProp", "szEmail");
#n = dllfunc("MakeResentForward", $myemail, "open", "log");
if( #n == 0 ) {
message "そのまま転送コマンドに失敗しました。";
endmacro;
}
while( dllfunc("DeleteHeader", "To") ) {
//
}
while( dllfunc("DeleteHeader", "Cc") ) {
//
}
#n = dllfunc("SetHeader", "From",
"=?iso-2022-jp?B?GyRCQEZGIz0oSVcbKEI=?=\n\t<xxxxx@xxxxxx.or.jp>");
#n = dllfunc("SetHeader", "Subject",
"=?utf-8?B?44OG44K544OI?=");
#n = dllfunc("SetHeader", "To", "testmail");
gofiletop;
beginsel;
gofileend;
delete;
insert "testmail\n";
#n = dllfunc("SendNow");
if( #n == 0 ) {
message "送信に失敗しました。";
endmacro;
}
#handle = hidemaruhandle(0);
#n = dllfunc("SetMainWndTop");
closehidemaruforced #handle;
Loop:
#n = dllfunc("SetAutoPushTimer", 10, "" );
message "メールが届くまで待機しています。(10秒)";
#n = dllfunc("StopAutoPushTimer");
#n = dllfunc("TransmitCustom", dllfuncstr("CurrentAccount") + ":L");
#c = dllfunc("RemoteMailHotCount");
if( #c == 0 ) {
goto Loop;
}
}
#c = dllfunc("RemoteMailHotCount");
#i = 0;
while( #i < #c ) {
$from = dllfuncstr("GetLastRecvMailFrom", #i);
$subject = dllfuncstr("GetLastRecvMailSubject", #i);
message $from + " / " + $subject;
#i = #i + 1;
}
|
|