[リストへもどる]
一括表示
タイトルマクロでの宛先欄編集
記事No3132
投稿日: 2010/04/25(Sun) 11:42
投稿者Nac < >
お世話になります。いろいろ検索したのですがズバリ情報がありませんで。

マクロで本文中の一部の文字列を切り出して、それを宛先欄に埋め込みたいので、以下のような順序で作ってみました。

CopyString( );
SetFocusToToAddress( ) ;
PasteString( ) ;

Copyのほうはうまく行っているようで、クリップボードに意図した
文字列が入ります。

しかし、このマクロ実行後、カーソルが宛先欄に移動した以外は何
も変化しません。
その状態で手動でctrl+Vでようやく文字が宛先欄に入ります。

マクロでは宛先欄は編集できないのでしょうか?

よろしくおねがいします。

タイトルRe: マクロでの宛先欄編集
記事No3134
投稿日: 2010/04/26(Mon) 19:36
投稿者Nac < >
自己レスです。
いろいろ検索したり、こちらのFAQや過去ログ、サンプルマクロ
など調べているのですが、どうも、

SetFocusToToAddress( );

この機能自体あまり使われていないようです。どのような使われ
かたを想定したものなのか、手順など参考になりそうなことが
ありましたら、申し訳ありませんがよろしくお願いします。

タイトルRe^2: マクロでの宛先欄編集
記事No3135
投稿日: 2010/04/27(Tue) 15:52
投稿者はるみち
Nacさん こんにちは はるみちです。

>マクロで本文中の一部の文字列を切り出して、それを宛先欄に埋め込みたい

具体的にどういう事をなさりたいのでしょう?

返信メール作成時に、本文の文字列をコピーし、宛先と置換したいということですか?
コピーする文字列はどんな物でしょう?

マクロコーナーの「フォーカス位置の指定」を読んで、
マクロを次のようにしたのですが、宛先が反転し、カーソルが点滅。で止まってしまい、
コピーした文字列はCtrl+Vキーで貼り付けることができました。
これはNacさんと同じ動作でしょうか?


SetFocusToToAddress( ) ;
CopyString( ) ;
PasteString( ) ;


どうもうまくいかないので、返信メール作成→文字列選択 までを手作業。

以後の手順のマクロをEdMax用雛形マクロ(Template)のヘッダ情報検索を
参考に作ってみました。

#マクロは次の投稿で。


--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F

タイトルRe^3: マクロでの宛先欄編集
記事No3139
投稿日: 2010/04/27(Tue) 18:32
投稿者はるみち
#マクロです。

CopyString( ) ; //コピー
SaveToDraft( ) ; //草稿フォルダへ保存
OpenThisFolder( "Account8\\送信\\草稿.ctx" ) ; //このフォルダを開く
SelectAllMessage( ) ; //メッセージをすべて選択


続く部分は「ヘッダ情報検索」のSubjectをToに置き換えて作成。
異なるのは
「Subject: 」が存在しない場合はEpilogへ
とEpilogの間が

KeyDown( VK_RIGHT , 0 ) ; //→キー(「To: 」の直後へ)
SetAnchor( ) ; //アンカーの設定
KeyDown( VK_END , 1 ) ; //Endキー(行末へ)
SetAnchor( ) ; //アンカーの設定
SelectAnchorArea( ) ; //アンカー間を選択
DeleteString( ) ; //文字列削除
PasteString( ) ; //文字列貼り付け

Epilogに続いて

ReEditMessage( ) ; //再編集
SendMessageLater( ) ; //送信待ちへ

以上です。まだ不完全だと思います。ご指摘お願いします。

--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F

タイトルRe^4: マクロでの宛先欄編集
記事No3141
投稿日: 2010/04/28(Wed) 06:22
投稿者はるみち
おはようございます はるみちです。

マクロの訂正をします。

「草稿フォルダ」に既にこの処理を行わないメールが在る場合を考慮し、
「草稿フォルダ」を開いた後のメール選択のコマンドは、「メッセージをすべて選択」
ではなく、メールリストの表示順によって、「先頭のメールへ」または「最後のメールへ」

このいずれかでいいと思います。


--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F

タイトルRe^5: マクロでの宛先欄編集
記事No3142
投稿日: 2010/04/28(Wed) 08:35
投稿者Nac < >
はるみちさん、

どうもありがとうございます。なんと言ってお礼を申し上げるべきか。
まずやりたいことですが、自分のアドレスに自分で送信したメールの
本文に記したアドレスへ、自動で中身を転送するということでした。
スパム防止、負荷低減などの理由で、特定のメールサーバーからしか
メールを受け付けないシステムへ、Edmaxのクライアント上の操作で
その都度宛先を自動指定した転送ができないかと思ったのです。
サーバー設定はいじることができないので。
PasteString( );の中身はメールアドレスの羅列となります。

いただいたスクリプトを元に、自分でいじり始めていますが、やはり
ヘッダ編集をしないといけないのですね。SetFocusToToAddress( ) ;
の意味がよくわかなくなりましたが、仕方ありません。

重ね重ねありがとうございました。また報告します。

タイトルRe^6: マクロでの宛先欄編集
記事No3143
投稿日: 2010/04/28(Wed) 08:58
投稿者はるみち
Nacさん おはようゴザイマス はるみちです。

>まずやりたいことですが、自分のアドレスに自分で送信したメールの
>本文に記したアドレスへ、自動で中身を転送するということでした。
>スパム防止、負荷低減などの理由で、特定のメールサーバーからしか
>メールを受け付けないシステムへ、Edmaxのクライアント上の操作で
>その都度宛先を自動指定した転送ができないかと思ったのです。
>サーバー設定はいじることができないので。
>PasteString( );の中身はメールアドレスの羅列となります。

補足説明をお願いしたいのですが、転送先はその都度違うのですか?


--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F

タイトルRe^7: マクロでの宛先欄編集
記事No3144
投稿日: 2010/04/28(Wed) 09:21
投稿者Nac < >

> 補足説明をお願いしたいのですが、転送先はその都度違うのですか?

はい、不特定ではないのですが、その都度違います。

タイトルRe^8: マクロでの宛先欄編集
記事No3146
投稿日: 2010/04/28(Wed) 10:37
投稿者はるみち
Nacさん お早うございます はるみちです。

その転送専用のフォルダに振り分けられるようにし、
フォルダプロパティでダミーの転送先を設定しておく。
振り分けられたメールをそのまま転送。
立ち上がった転送タブで本文内の転送先アドレスを選択して、マクロ実行。
この手順だと思います。

#本文内の転送先アドレスを検索できないかな。
#もっといい方法がありそうだが。


--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F

タイトルRe^9: マクロでの宛先欄編集
記事No3147
投稿日: 2010/04/28(Wed) 11:36
投稿者Nac < >
はるみちさん、
有難うございます。

今代替で思いついたのは、転送させたいメール本文先頭に
Xfer-To: hogehoge(転送させたい先)
(改行)

という文を埋め込むようにして、(かなり荒業ですが)
マクロでヘッダの終端を無理やりずらすようにしようと思います。

From: myadress
To: hoge (本当のheader:消してしまう)
Subject: About ....
Date: ...
(本来のヘッダ部終端:これは改行を一つ減らして消す)
Xfer-To:hogehoge (転送したい先)
(改行)

これを以下のようにReplaceString(...)のみで変更するのが簡単そうです。

From: myadress
Subject: About ....
Date: ...
To:hogehoge ("Xfer-"の文字列を削除する)
(偽装した新たなヘッダ部終端)

簡単なテストをしたらうまく転送できました。
ただ、Edmaxマクロに慣れていないのでものすごく冗長です。
ReplaceStringって一回だけの変換は、最初に引数0と次に1で
2回コールしないといけないのですね?

タイトルRe^10: マクロでの宛先欄編集
記事No3148
投稿日: 2010/04/28(Wed) 11:45
投稿者Nac < >
たぶんものすごくバカなことをやっていると思います。

迷惑投稿になってしまう理屈私もよくわからないので、
文字列処理のみ記します。

KeyDown( VK_HOME , 2 ) ;
ReplaceString( 0 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "^To: .*\\n" , "" ) ;
ReplaceString( 1 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "^To: .*\\n" , "" ) ;

KeyDown( VK_HOME , 2 ) ;
ReplaceString( 0 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "\\n\\n" , "\\n" ) ;
ReplaceString( 1 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "\\n\\n" , "\\n" ) ;


KeyDown( VK_HOME , 2 ) ;
ReplaceString( 0 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "^xTo: " , "To: " ) ;
ReplaceString( 1 , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , "^xTo: " , "To: " ) ;

SendMessageNow( ) ;
SendWaitingMessage( ) ;

タイトルRe^11: マクロでの宛先欄編集
記事No3149
投稿日: 2010/04/28(Wed) 13:25
投稿者はるみち
Nacさん こんにちは はるみちです。

正常に転送できているんですね?

では、「自動転送」マクロと合わせると自動で処理できそうですが。
ご自分で出したご自分宛のメールだけということなので、その必要はありませんかね?


本文の最初に記述する転送先は

To: hogehoge
(空行)
(実際の本文の最初の行)

ではいけませんか?

「文字列の置換」私も検討してみます。


--------------------------------
     はるみち
 Windows XP Home Edition SP3
    EdMax 2.86.3F