找回密码
 加入
搜索
查看: 9991|回复: 17

[IE类操作] [已解决]谁能写一个163自动发邮箱的代码(不是用jmail,而是用页面模拟)

  [复制链接]
发表于 2011-11-5 19:58:37 | 显示全部楼层 |阅读模式
本帖最后由 jingygr 于 2012-7-9 13:01 编辑

大家好,小弟正在学习如果自动发送邮件。

对于mail.163.com这个邮箱,我不懂得如何自动输入邮件的收件人、标题及正文。

因为163邮箱中,一直用内嵌的iframe页面。现在是能取得这些内嵌页面的URL,但是里面有很多输入框input没有ID或名字。所以不知道怎么定位到这些输入框中。

麻烦大家帮我想想办法,谢谢
发表于 2011-11-6 08:58:24 | 显示全部楼层
试一下用tab键来切换
----------------------------
$oIE=ObjCreate("InternetExplorer.Application.1")            ; 建立 IE 对象
$SinkObject=ObjEvent($oIE,"IEEvent_","DWebBrowserEvents2") 
$oIE.Visible=1                                            
$oIE.RegisterAsDropTarget = 1                            
$oIE.RegisterAsBrowser = 1
$oIE.Navigate( "http://mail.163.com/" )     ;定位网址
sleep(3000)       ; 载入网页需要的时间
Send("xxxxxx")    ;用<tab>键切换行?
Send("{tab}")     ;切换
Send("******")    ;输入密码
Send("{ENTER}")   ;输完密码直接回车确定
发表于 2011-11-6 09:09:04 | 显示全部楼层
有可能IE缓存邮箱用户名,影响模拟输入,清空一下Cookies就可以了。
发表于 2011-11-6 14:35:13 | 显示全部楼层
不记得是在哪里看到得一个源码!!

#include <IE.au3>
$username = 'aaaaaaaa'
$password = 'bbbbbbbb'
$oIE = _IECreate("http://mail.163.com")
$oform = _IEGetObjByName($oIE, "login163")
$oQuery1 = _IEFormElementGetObjByName($oform, "username");
_IEFormElementSetValue($oQuery1, $username);
$oQuery2 = _IEFormElementGetObjByName($oform, "password")
_IEFormElementSetValue($oQuery2, $password);
$Elements = _IEFormElementGetCollection($oform)
For $Element In $Elements
;MsgBox(0, "Form Element Type", "Form: " & $Element.form.name & " Type: " & $Element.type)
If $Element.type = "Submit" Then $Element.click
Next
发表于 2011-11-6 20:13:40 | 显示全部楼层
楼主要的不是自动登录吧
 楼主| 发表于 2011-11-7 15:23:54 | 显示全部楼层
楼主要的不是自动登录吧
cxlater 发表于 2011-11-6 20:13



    不是自动登录。而是自动发送。登录及打开写信窗口我都已经写好了。就是不知道怎么设置写信界面中的那些input的值(不懂得自动填写收件人、标题、邮件正文)
 楼主| 发表于 2011-11-7 15:24:05 | 显示全部楼层
回复 4# ye5022


   
    不是自动登录。而是自动发送。登录及打开写信窗口我都已经写好了。就是不知道怎么设置写信界面中的那些input的值(不懂得自动填写收件人、标题、邮件正文)
 楼主| 发表于 2011-11-7 15:24:14 | 显示全部楼层
回复 2# dnbj2010


   
    不是自动登录。而是自动发送。登录及打开写信窗口我都已经写好了。就是不知道怎么设置写信界面中的那些input的值(不懂得自动填写收件人、标题、邮件正文)
发表于 2011-11-7 18:45:15 | 显示全部楼层
回复 8# jingygr
--------------------------------------------
呵呵,我是坐标定位,刚看了这个贴子,试了一下也是可以的,看这里
http://www.autoitx.com/thread-28540-1-1.html

......._IETagNameGetCollection.....

论坛有很多贴子都很有启发性,可以多逛逛,多搜搜。
发表于 2011-11-8 08:47:22 | 显示全部楼层
又试了一下,发现 _IETagNameGetCollection 在163邮箱登陆时是有效的,但登陆之后就不行了。
从_IEDocReadHTML ($oIE) 返回的源码分析,登陆之后为:

<IFRAME style="WIDTH: 100%; POSITION: absolute; HEIGHT: 100%" border=0 name=index src="index.jsp?sid=rCaMvyWREdLyebUuZvRRLKAwnwnSwVwb" frameBorder=0></IFRAME>

这样子,本人没办法了,看高手怎样来获取吧?
咱们低手,就用低手的方法吧:
用窗口信息工具查询目标控件的坐标,然后
MouseClick ("left",x坐标, y坐标,1)
发表于 2011-11-8 18:13:16 | 显示全部楼层
点"写信"后,直接send()就可以填写收件人了, 不是吗?
发表于 2011-11-9 12:42:49 | 显示全部楼层
发表于 2011-11-9 15:28:02 | 显示全部楼层
试一下看看能不能用
发表于 2011-11-9 15:29:10 | 显示全部楼层
本帖最后由 xz00311 于 2011-11-9 15:41 编辑

网络问题发了这么多
发表于 2011-11-9 15:38:14 | 显示全部楼层
本帖最后由 xz00311 于 2011-11-9 15:41 编辑

网络问题希望管理见谅把那些多出来的删除掉
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-6 07:12 , Processed in 0.141937 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表