Yahooメールの受信拒否設定を一括で行う UWSC編

追記:2011/06/19
検索から来られて、Yahooメールで特定のところから届くメールが受信できない人へ
メールオプションの「フィルターと受信通知設定」で該当ドメインや、メールアドレスを明示的に指定して受信するようにするとよいらしいです。
Yahooメールには、受信拒否設定でメールアドレスとドメインのどちらかで拒否できます。詳細は、こちらが詳しいです。500件まで登録できます。

ブラウザから1件ずつ登録することになるのですが、非常に不便です。そこで一括して登録するようにしてみました。使うツールは、UWSCです。Vectorでのレビューは、こんな感じです。有料版もあるようですが、今回はFree(無料)版で問題ありません。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.Navigate("http://www.yahoo.co.jp")
BusyWait(IE)
IELink(IE,"Yahoo!メールメール") //
BusyWait(IE)
IE.Navigate("http://jp.f24.mail.yahoo.co.jp/ym/Options?YY=51571") // メールオプション
BusyWait(IE)
IE.Navigate("http://jp.f24.mail.yahoo.co.jp/ym/BlockSender?YY=34260") // 受信拒否
BusyWait(IE)

//-----------------------------
//受信拒否メールデータ取得
//MAILDATA配列に代入
Dim MAILDATA[100]
READFILEID = FOPEN("MAILDATA.TXT",F_READ)
NUMOFLINE = FGET(READFILEID,-1)
RESIZE(MAILDATA,NUMOFLINE)
For i=1 to NUMOFLINE
MAILDATA[i-1] = FGET(READFILEID,i,1)
print MAILDATA[i-1]
next

//--------------------------
//受信拒否メールの登録
For i=1 to RESIZE(MAILDATA)
IESetData(IE,MAILDATA[i-1],"NE")
IESetData(IE,True,"addblock")
BusyWait(IE)
next

Procedure BusyWait(ie)
Sleep(0.5)  // Wait
Const TIME_OUT = 90
tm = Gettime()
repeat
Sleep(0.2)
ifb Gettime() - tm > TIME_OUT
MsgBox("Time Out:BusyWait")
ExitExit
endif
until (! ie.busy) and (ie.readyState=4)
Sleep(0.5)
Fend
Yahooにログインした状態で実行してください。7行目と9行目のURLはもしかすると少し違う場合があるようですので動作しない場合は確認してみてください。

このスクリプトと同じフォルダに登録したいメールアドレスを書き込んだテキストファイルを用意。ファイル名は、MAILDATA.TXT
xxxx@yahoo.co.jp
xxx@msn.com
xxx@yahoo.com
xxx.com
UWSCは結構有名なソフトのようです。文法はVBスクリプトライクだと思います。IEを操作する場合などはこちらのほうが明らかに楽です。

定期的に全削除して登録しなおすのも簡単になりました。ほかのWEBメールとかでも同様な手法で実現可能だと思います。

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。