Q:自動返信マクロNo.00417
JR0LPL さん 07/07/17 19:21
 
皆様、お世話になります。自動返信マクロを作成中です。

自動返信させるメール生成部分はヘッダの設定を含めてマクロが完成しました。

次の段階として、新着メールから、From: を抜き出す部分を実装しました。以下
で良いと思われます。示しますので、おかしな点が有ったらご指摘下さい。

//$Flag = "";
$Flag = "自動送信ON";

if ($Flag == "") endmacro;

//  getininum 関数用の設定(後日実装予定)

$ini = "E:\\TuruKameData\\AutoReplay\\Addr.ini";
$sec = "Addr";
$a = "From";

// メインルーチン

loaddll "tkinfo.dll";
while( dllfunc( "SelectRecvMail" ) ) {
    $From = dllfuncstr("CurrentHeader", "From");
}

if ($From == "") endmacro;

ここから先が問題なのですが、$Fromには、 name <****@*****.ne.jp>
のようになっている場合が多いので、メールアドレスのみ抽出しようと試みてい
ます。

$(SetEmailOnly, 文字列)(テンプレート)関数を使えば良いのかな?と考えて、
上記マクロの続きに、

$From1 = $(SetEmailOnly , $From);

と書き足してみたのですが、「式がおかしいです」のエラーになってしまいまし
た。

Q:$Fromから、メールアドレス部分のみ抽出する正しい書式をアドバイスお    
    願い致します。

次に、iniファイルのメールアドレスと、抽出した $From1 を比較して、合致し
た場合のみ、自動返信動作をさせようと考えていますが、たぶん、つまずくと思
いますので、上記質問事項が解決したら、再度質問させて頂くと思います。

しばらく、お騒がせすると思いますが、ご容赦下さい。それとともに、よろしく
お願い致します。

[ ]
RE:00417 Q:自動返信マクロNo.00418
K'zawa さん 07/07/17 21:55
 
JR0LPLさん、こんにちは。
K'zawa/ユーザーです。

>ここから先が問題なのですが、$Fromには、 name <****@*****.ne.jp>
>のようになっている場合が多いので、メールアドレスのみ抽出しようと試みてい
>ます。
>
>$(SetEmailOnly, 文字列)(テンプレート)関数を使えば良いのかな?と考えて、
>上記マクロの続きに、
>
>$From1 = $(SetEmailOnly , $From);
>
>と書き足してみたのですが、「式がおかしいです」のエラーになってしまいまし
>た。

使う関数はあってますが、テンプレートはテンプレート、
マクロはマクロの書式で記述して下さい。
従って、マクロヘルプの方を参考にして下さい。

[ ]
RE:00418 Q:自動返信マクロNo.00419
JR0LPL さん 07/07/17 22:41
 
K'zawaさん、こんにちは。JR0LPLです。お騒がせしています。

>使う関数はあってますが、テンプレートはテンプレート、
>マクロはマクロの書式で記述して下さい。
>従って、マクロヘルプの方を参考にして下さい。

マクロのヘルプに用例が書いてあったら、参考になったと思いますが文章だけで
チンプンカンプンでした。(それでも3時間くらい、試行錯誤したんですよ)

マクロのヘルプを読んで理解出来なかったので質問させて頂いたのですが、マク
ロのヘルプで、マクロが理解出来ないような青二才は、マクロに手を出すな、と
言うことでしょうか?

もしそうなら、折角マクロを、皆様のお力も借りて理解しようと頑張りましたが
断念しなくてはならないって事ですね。

[ ]
RE:00419 Q:自動返信マクロNo.00420
アルビレオ さん 07/07/17 23:06
 
横から失礼します。
ユーザーのアルビレオです。

>マクロのヘルプを読んで理解出来なかったので質問させて頂いたのですが、マク
>ロのヘルプで、マクロが理解出来ないような青二才は、マクロに手を出すな、と
>言うことでしょうか?

いえいえ。
ここまで自力でたどり着けたのなら上出来ですよ。
機能的な面は理解できているみたいなので、K'zawaさんは文法の違いを指摘した
だけです。
マクロヘルプで SetEmailOnly を検索すれば、下の方にマクロでの使用例が書か
れています。
JR0LPLさんがそれを見ればすぐに理解できると思われるので、K'zawaさんもそれ
以上詳しくは書かなかっただけでしょう。

[ ]
RE:00417 Q:自動返信マクロNo.00421
Iranoan さん 07/07/17 23:07
 
 JR0LPL さん今日は、Iranoan です。
> $(SetEmailOnly, 文字列)(テンプレート)関数を使えば良いのかな?と考えて、
> 上記マクロの続きに、
> $From1 = $(SetEmailOnly , $From);
 使う関数はあっていますが、使い方が間違っています。
>     $From = dllfuncstr("CurrentHeader", "From");
と同様の使い方をします。詳細は、マクロ・ヘルプを御覧ください。

> Q:$Fromから、メールアドレス部分のみ抽出する正しい書式をアドバイスお
>     願い致します。
返信を自動化したいなら、NewMail 関数ではなく MakeReply 関数うでしょう
から、
$from = dllfuncstr( "SetEmailOnly", dllfuncstr( "RootHeader", "From" ) );
とします。

[ ]
RE:00419 Q:自動返信マクロNo.00422
K'zawa さん 07/07/17 23:08
 
JR0LPLさん、こんにちは。
K'zawaです。

>マクロのヘルプに用例が書いてあったら、参考になったと思いますが文章だけで
>チンプンカンプンでした。(それでも3時間くらい、試行錯誤したんですよ)

ヘルプの例がほとんどそのまんまだと思いましたが、

>例
>$from = dllfuncstr( "CurrentHeader", "From" );
>$fromemail = dllfuncstr( "SetEmailOnly", $from );

これでは駄目ですか?

[ ]
RE:00419 Q:自動返信マクロNo.00423
Iranoan さん 07/07/17 23:11
 
 JR0LPL さん今日は、Iranoan です。
> マクロのヘルプに用例が書いてあったら、参考になったと思いますが文章だけで
> チンプンカンプンでした。
 用例は書いてありますよ。
> $from = dllfuncstr( "CurrentHeader", "From" );
> $fromemail = dllfuncstr( "SetEmailOnly", $from );

 あと、ここに載っていない $ 等の意味は、先に書いたように秀丸メールの
マクロ・ヘルプを読む必要があります。

[ ]
RE:00419 Q:自動返信マクロNo.00424
JR0LPL さん 07/07/18 00:41
 
みなさん、こんにちは。JR0LPLです。

K'zawaさん、アルビレオさん、Iranoanさん、お騒がせして申し訳ありません。

特に、K'zawaさんに対しては、大変失礼な事を言ってしましました。前言を撤回
して、深く謝罪します。本当に、申し訳ありませんでした。

今0:31ですが、一回寝ておきました。実は前日の6:30からご飯も食べないで丸
一日、22:30頃までマクロと交戦していて、頭が疲れ切って、K'zawaさんのヒン
ト「マクロヘルプ」に気が付きませんでした。(言い訳にしか聞こえないと思い
ますが)

みなさんがアドバイスして頂いた中で「マクロヘルプ」と書かれていて、今気が
付きました。僕は間違って、「秀丸メールヘルプ」に記述されている
[$(SetEmailOnly, 文字列) (テンプレート)]という項目を見ていました。こち
らには、用例が全く載って居ないので、かなり苦しみました。これがそもそもの
間違いでした。

ご指摘頂いたように、今、改めて「マクロヘルプ」を見たら、きちんと用例が載
っていました。

僕のボンミスで、皆様に不快な思いと、余計な労力を使わせてしまいました。
改めてお詫び申し上げます。

これから、皆様にアドバイス頂いた内容で実装してみます。本当にありがとうご
ざいます。

次回は、たぶん、抽出できたメールアドレスとiniファイルの比較つまづくと思
います(実は、22:30に寝る前にテストしてみて、挫折しかかってます)

また、お知恵の拝借と、ここの会議室をお騒がせすると思いますが、ご容赦頂け
たら幸いです。

[ ]
RE:00424 Q:自動返信マクロNo.00442
davinci1958 さん 07/07/18 21:34
 

2007/07/18(水) 21:24:42

こんにちは、JR0LPLさん

ダヴィンチ@ユーザーです。

私が提示したマクロでの解決ご苦労様です。
いろいろと苦労されているようで、とても他人事とは思えませんので
老婆心ですが・・・

メールのやり取りの中で『該当のメールアドレスが複数の場合にif文などが
複雑になる』またそのような情報をiniファイルに記述し、それを読み出す
処理などもそれなりに大変でしょう。

そこでいくらかプログラミングが楽になる方法がありますので
参考にしていただけたら幸いです。

元々振り分け設定の中で自動返信処理を実現されたいという事でしたので
該当メールは、振り分けられているのでしょうか。
そうだとすれば、メールアドレスやその他の条件で振り分け先のフォルダーに
振り分けられた後にそのフォルダへ移動してからFrom:アドレスや
Reply-toの情報を取得して、自動返信すれば『該当アドレスの判別処理』が
まるごと不要になります。もちろんiniファイルも不要となるでしょう。

もし、振り分け先が複数のフォルダになる場合は、そのフォルダの数だけ
ループ処理をすればいいでしょう。

秀丸メールに出来ることはなるべく秀丸メールにやらせた方が後々の
追加仕様にも柔軟に対応できる場合があります。

いかがでしょう。^o^

/*
** タイトル:『turukame.2:00424| RE 00419 Q:自動返信マクロ』
** 発信日:2007年07月18日(水) 00:41:04
** 発信者:JR0LPLさん
*/
>みなさん、こんにちは。JR0LPLです。
>
>K'zawaさん、アルビレオさん、Iranoanさん、お騒がせして申し訳ありません。
>
>特に、K'zawaさんに対しては、大変失礼な事を言ってしましました。前言を撤回
>して、深く謝罪します。本当に、申し訳ありませんでした。
>
>今0:31ですが、一回寝ておきました。実は前日の6:30からご飯も食べないで丸
>一日、22:30頃までマクロと交戦していて、頭が疲れ切って、K'zawaさんのヒン
>ト「マクロヘルプ」に気が付きませんでした。(言い訳にしか聞こえないと思い
>ますが)
>
>みなさんがアドバイスして頂いた中で「マクロヘルプ」と書かれていて、今気が
>付きました。僕は間違って、「秀丸メールヘルプ」に記述されている
>[$(SetEmailOnly, 文字列) (テンプレート)]という項目を見ていました。こち
>らには、用例が全く載って居ないので、かなり苦しみました。これがそもそもの
>間違いでした。
>
>ご指摘頂いたように、今、改めて「マクロヘルプ」を見たら、きちんと用例が載
>っていました。
>
>僕のボンミスで、皆様に不快な思いと、余計な労力を使わせてしまいました。
>改めてお詫び申し上げます。
>
>これから、皆様にアドバイス頂いた内容で実装してみます。本当にありがとうご
>ざいます。
>
>次回は、たぶん、抽出できたメールアドレスとiniファイルの比較つまづくと思
>います(実は、22:30に寝る前にテストしてみて、挫折しかかってます)
>
>また、お知恵の拝借と、ここの会議室をお騒がせすると思いますが、ご容赦頂け
>たら幸いです。

--
メーラー: HidemaruMail 4.81beta1 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:00442 Q:自動返信マクロNo.00445
JR0LPL さん 07/07/19 01:53
 
ダヴィンチさん、こんにちは。JR0LPLです。

ご提案、ありがとうございます。

はい、自動振り分けは秀丸メールで行っています。加えて自動返信し
たい振り分けフォルダも、複数ありますが、「特定アカウント内のい
くつかのフォルダ」に限定されますので、ご提案頂いた「秀丸メール
で振り分けさせた後、該当フォルダに移動して、自動返信する」とい
う方法、検討したいと思います。

一方で、iniファイルの醍醐味も味わってしまいまして、非常に便利
なので、今回「出来ました!」って発表したマクロも、かなりの部分
の情報をiniファイルに持たせてしまいました。例えば、$Flagと言う
のをマクロ内に持たせて、マクロをエディタで毎回開いて書き換えて
動作のON/OFFをさせていました。この情報をiniファイルに持たせて、
別マクロを使って、writeininum 関数で$Flagに該当する部分の値を
書き換えてマクロ制御したりと、かなり便利に使わせ頂いています。

自動返信に限っては、確かにダヴィンチさんがご提案下さった方法が
スマートだと思いますので、改良してみたいと思います。ただ、マク
ロを毎回エディタで開いて、制御させるFlag類を書き換えるのは、一
般的では無いので、こう言う部分は、やはりiniファイルに情報を持
たせて、writeininum 関数を使って別マクロでFlagに値する部分の
「キー=文字列または数値」
を書き換える方法で行きたいと思います。

iniファイル+今回の秀丸メールの自動振り分けを実行させてから振
り分け先フォルダに移動して自返信、組み合わせてスマートなマクロ
にしたいと思います。

ありがとうございました。

[ ]