2

メールをやや信頼性の低いプロバイダー (X としましょう) から Gmail に移行したいと考えています。残念ながら、電子メール プロバイダーは、フォルダーのエクスポートまたは直接の IMAP リンクを許可していません。

私にできることは、Gmail を POP3 経由で X に接続することだけです。これにより、X の受信トレイにあるものはすべて Gmail にコピーされます。

これは私が設定したもので、動作しますが、もちろん POP3 は受信ボックスのみをスキャンします。

受信トレイ以外のフォルダーに何千ものメールがあるため、まずそれらを受信トレイに移動する必要があります。ただし、X の Web GUI を介してのみメッセージを移動できます。この GUI では、1 ターンに 1 ページのメッセージしか移動できません。

保存されたメッセージ フォルダを開いて、[すべて選択] をクリックし、[受信トレイ] を選択して [移動] をクリックすると、ページがリロードされ、これをもう一度行う必要があります... 何百回も。

これらの動作をシミュレートする Javascript 関数 (MoveToInbox() を想定) を作成し、Firefox でページを開いて Firefox Scratchpad を起動しました。そのため、Scratchpad で Ctrl+R を押し続け、ページのリロードを待ってからもう一度押すと、約 50% の時間を節約できます。

ただし、スクラッチパッドをそのタブで動作させて、ページのリロードを待機し、スクリプトを実行してから再度待機し、手動の反復タスクをすべて排除できるかどうか疑問に思っています。

window.addEventListener で何とかできると思ったのですが、このオブジェクトはページのリロード時にクリアされるようです。

4

2 に答える 2

0

私自身の簡単な答えは、GreaseMonkeyなどの Firefox アドオンを使用することだけです。

もちろん、解決策はケースによって異なりますが、私自身はこの GreaseMonkey Javascript でした。

// the function to select all messages and programmatically click on 
// move button:
function moveToInbox()
{
    selectAllCheckbox=document.getElementById("messagesForm")[0]; 
    mailboxSelector=document.getElementsByName('targetMailbox')[0];
    selectAllCheckbox.click(); // click on "select all" checkbox
    mailboxSelector.selectedIndex=1; //specify that we are moving to inbox
    inx.mail.mailbox.mailboxTransfer(); // execute provider's function for moving mail.
}

// This gets executed on any page that matches URL specified in Greasemonkey script properties
// I have put this to execute, if the URL is for the folder I want to move messages from.

messageList=document.getElementById("messagesForm")[0];
// in my case, if there are no more messages to move, the form is not created at all, so 
// I can check for its existance, to determine if I need to execute moving.
if (messageList == null)
{
    return;
}
else
{
    moveToInbox();
}
于 2012-10-04T06:39:13.857 に答える
0

iFrame の使用


最初の問題は、リロード後に変数<iframe>と関数が失われる ことですsrc = "X"
:
<iframe>src

次に、Web サイトに簡単にアクセスして操作できます。iframeId.contentDocument

例:

google.comに移動し、Inspect Element を使用して iframe を追加し
<iframe src="https://www.google.ae" id="someID"> </iframe>
ます。次に、JavaScript を使用して iframe を操作できます。
someID.contentDocument.location.reload(); setTimeout('someID.contentDocument.getElementById('lst-ib').value="iframes rock"',1000); //You should use something better than setTimeout to wait for the website to load.

于 2015-11-08T12:35:49.687 に答える