|
ももかずさん、こんにちは。江袋と申します。
>日本人は日本語、外国人は英語で名前を書きたいのです。
>要するに、日本語OSでメールを受け取る人には日本語で書き、英語OSで
>メール受け取る人には英語で書きたいのです。
私、上記のこと実際にやっています。
やり方は、ちょっと複雑かもしれませんが、一応紹介したいと思います
ので、試してみてはいかがでしょう。
【動作概要】
英文メールの場合、ToやCcには F.Ebukuroのように英文の名前を記述
し、日本語メールの場合は江袋 文人と記述する
【準備】
まず最初に、アドレス帳には次のようなルールで名前を記述します。
江袋 文人/F.Ebukuro
※半角スラッシュが区切り文字。前半が日本語名で後半が英語名。
【送信用のエディタ起動時の自動実行マクロ】
メールを新規や返信で送信する際、マクロを自動起動するようにして
おき、マクロには次のような記述を入れておきます。
loaddll "TKInfo.dll";
if (!result) {
message "tkinfo.dllのロードに失敗しました。";
endmacro;
}
#type = dllfunc("MailType");
//中略
call EnglishMail #type;
endmacro;
//==========================================================================
====
//英文メール対応
//==========================================================================
====
EnglishMail:
menu "英文メール";// 英文メールの場合にマウスで選択
if (result == 0) {
gofiletop;
return;
}
// Fromアドレスの書き換え
$$s = dllfuncstr("SetHeader", "From", "EBUKURO Fumihito <xxx@xx.xxxxxxxx.com
>");
//以下略(実際はシグニチャを英文に書き換えたりしています)
return;
【後で送信/今すぐ送信時の自動実行マクロ】
そして、メールを発信する際に下記のマクロを実行してToなどを書き
換えます。
loaddll "TKInfo.dll";
if (!result) {
message "tkinfo.dllのロードに失敗しました。";
endmacro;
}
#type = dllfunc("MailType");
//==========================================================================
====
//Fromアドレスの確認
//- "EBUKURO Fumihito" ........ 英文メールと判断→ヘッダー加工処理
//- その他 .................... 終了処理
//==========================================================================
====
$FromName = dllfuncstr("SetNameOnly", dllfuncstr("CurrentHeader", "From"));
if ($FromName != "EBUKURO Fumihito") {
endmacro;
}
//==========================================================================
====
//ヘッダー加工処理
//(To/Cc/Bccをアドレスのみに変換)
//==========================================================================
====
call HeaderChanger "To", "";
call HeaderChanger "Cc", "";
call HeaderChanger "Bcc", "";
call HeaderChanger "Organization", "XXXXXXXX Limited";
endmacro;
HeaderChanger:
$newHeader = $$2;
if ($$1 == "To" || $$1 == "Cc" || $$1 == "Bcc") {
$h = dllfuncstr("CurrentHeader", $$1);// ヘッダー
#n = dllfunc("CountEmailList", $h);// ヘッダーの中身の要素数
#i = 0;
while (#i < #n) {
$s1 = dllfuncstr("GetEmailList", $h, #i);
$s2 = dllfuncstr("FindBook", $s1);
$s3 = "";
$s4 = "";
// アドレス帳に存在したら
if ($s2 != "") {
// アドレス帳に記載されている"名前 <メアド>"抽出
$s3 = dllfuncstr("FindBook3", $s1);
// スラッシュの位置を検索
#n1 = strstr($s3, "/");
// スラッシュが見つかったら
if (#n1 != -1) {
// メアド含んだスラッシュの右側を抽出
#n1 = #n1 + 1;// スラッシュは除く
$s4 = rightstr($s3, (strlen($s3)-#n1));
}
else {
// アドレス帳のメアドをそのまま使う
$s4 = $s3;
}
}
else {
// アドレス帳のメアドをそのまま使う
$s4 = $s1;
}
$newHeader = $newHeader + $s4;
#i = #i + 1;
if (#i < #n) {
$newHeader = $newHeader + ", ";
}
}
}
else {
#n = 1;
}
if (#n > 0) {
$s = dllfuncstr("SetHeader", $$1, $newHeader);
}
return;
|
|