Jump to content
Sign in to follow this  
MasonMill

Filling out my email in IE

Recommended Posts

MasonMill

Hey everyone,

I am have a ridiculous time trying to fill out my hotmail email within Internet Explorer. I dont want to use the SMPT rought and want to use my Hotmail login online to do so. I dont find the forms that I need to fill out, i.e. email subject field, email body text field and recipient email field. I dont have much experience with with all the IE stuff but have been working on it non stop for the past couple days. I dont know whether its because there is a frame surrounding the fields i want to fill or what. I look at the source but cant seem to find what I need.

Any guidance would be appreciated. All I wont to do is fill out my email with a recipients email address, put a subject in and write the email text then send. I never thought it would be this difficult for me.

Thanks in advance,

Mason

_IE_FillMyEmail($MyIEWindow)

Func _IE_FillMyEmail($oIE)
    _IEErrorNotify(False)
    $oForms = _IEFormGetCollection($oIE)
    $Index = 0
    For $oForm In $oForms
        $oFormElements = _IEFormElementGetCollection($oForm)
        If IsObj($oFormElements) Then
            dbg("IsObj($oFormElements) = true")
            dbg("Form Element Type: " & $oFormElements.type)
            $IndexElement = 0
            For $oElement In $oFormElements
                dbg("Element Type: " & $oElement.type)
                dbg("Element Name: " & $oElement.name)
                ;If I could find what im looking for I would put what to fill out here
            Next
        Else
            dbg("IsObj($oFormElements) = false")
        EndIf
        $Index += 1
    Next

EndFunc ;==>fill out my email
Edited by MasonMill

Share this post


Link to post
Share on other sites
Danp2

This appears to work just fine:

#include <IE.au3>

Local $cUrl  = "https://login.live.com"
Local $cUser = "test@test.com"
Local $cPass = "testpass"

Local $oIE = _IECreate($cUrl, 1)

Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oName = _IEFormElementGetObjByName($oForm, "login")
Local $oPass = _IEFormElementGetObjByName($oForm, "passwd")
Local $oButton = _IEFormElementGetObjByName($oForm, "idSIButton9")

_IEFormElementSetValue($oName, $cUser, 1)
_IEFormElementSetValue($oPass, $cPass, 1)

_IEAction($oButton, "click")

Share this post


Link to post
Share on other sites
MasonMill

 

This appears to work just fine:

#include <IE.au3>

Local $cUrl  = "https://login.live.com"
Local $cUser = "test@test.com"
Local $cPass = "testpass"

Local $oIE = _IECreate($cUrl, 1)

Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oName = _IEFormElementGetObjByName($oForm, "login")
Local $oPass = _IEFormElementGetObjByName($oForm, "passwd")
Local $oButton = _IEFormElementGetObjByName($oForm, "idSIButton9")

_IEFormElementSetValue($oName, $cUser, 1)
_IEFormElementSetValue($oPass, $cPass, 1)

_IEAction($oButton, "click")

 

Yeah, I was able to get in ok with this:

Func _IEAutoLogin($sUrl, $sUsername, $sPwd)
    $oIE = _IECreate($sUrl)
    _IEErrorNotify(False)
    $oForms = _IEFormGetCollection($oIE)
    $Index = 0
    For $oForm In $oForms
        $oFormElements = _IEFormElementGetCollection($oForm)
        If IsObj($oFormElements) Then
            $IndexElement = 0
            For $oElement In $oFormElements
                Local $oDiv = _IEGetObjById($oIE, "line1")
                If $oElement.Type = 'password' Then
                    $oPwd = _IEFormElementGetObjByName($oForm, $oElement.Name)
                    _IEFormElementSetValue($oPwd, $sPwd)
                    For $i = $IndexElement - 1 To 0 Step -1
                        $oUser = _IEFormElementGetCollection($oForm, $i)
                        If $oUser.Type = 'text' Then
                            _IEFormElementSetValue($oUser, $sUsername)
                            ExitLoop
                        EndIf
                    Next
                    If $oForm.action <> "0" And Not StringInStr($oForm.action, '.php') Then  ;submit
                        _IEFormSubmit($oForm, 0)
                        _IELoadWait($oIE)
                    Else  ;click
                        For $i = $IndexElement + 1 To $IndexElement + 10 ;check the next 10 elements
                            $oButton = _IEFormElementGetCollection($oForm, $i)
                            If $oButton.Type = 'submit' Then
                                _IEAction($oButton, "click")
                                ExitLoop
                            EndIf
                        Next
                    EndIf
                EndIf
                $IndexElement += 1
            Next
        EndIf
        $Index += 1
    Next
    Return $oIE


EndFunc   ;==>_IEAutoLogin

 

The problem is once I'm logged in and looking at the compose email screen I can't find the forms. If they are actually form i need to be looking for. If you are logged in the address is https://bay175.mail.live.com/default.aspx#page=Compose

Share this post


Link to post
Share on other sites
MasonMill

I dont know if these help but here is what they look like with my debugging tool.

Subject line:

subject.jpg

email recipient:

emailrecipient.jpg

text body:

body.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • FMS
      By FMS
      Hello,
      I try to get all the text from a news site around a subject.
      The first run I get all the text inside a attribute in an array.
      When i try to go back and reload another page it chrashes and think it because "$oIE.GoBack"
      I couldn't find anything in the help/forum around this subject.
      Do I need to reload the $oIE or something afther an X.GoBack?
      The error i got is :
      if $oTag2.GetAttribute("class") == "NewsDetail" Then if $oTag2^ ERROR I'm not shure why I got this error, maybe someone could explain?
      Also I'm open for some pointers in this test script because I'm pretty new in working whit the IE.UDF
      Maybe there is an simpler way to get the same results?

      test script:
      #include <IE.au3> #include <MsgBoxConstants.au3> #include <Array.au3> HotKeySet("{ESC}", "Terminate") Global $oIE = _IECreate("https://www.iex.nl/Zoeken/Nieuws.aspx?q=air%20france") ;get first subject Global $oLink1 = _IEGetObjById($oIE, "ctl00_ctl00_Content_LeftContent_NewsSearch_repNews_ctl00_linkNews") Sleep(500) _IEAction($oLink1, "click") Sleep(500) Global $oTags = _IETagNameGetCollection($oIE, "div") Global $aResults[1] For $oTag In $oTags if $oTag.GetAttribute("class") == "NewsDetail" Then _ArrayAdd($aResults, $oTag.innerTEXT) EndIf Next $aResults[0] = UBound($aResults) - 1 _ArrayDisplay($aResults, "Episodelist") ConsoleWrite($aResults[1] & @CRLF) $oIE.GoBack ;get second subject Global $oLink2 = _IEGetObjById($oIE, "ctl00_ctl00_Content_LeftContent_NewsSearch_repNews_ctl01_linkNews") Sleep(500) _IEAction($oLink2, "click") Sleep(500) Local $oTags2 = _IETagNameGetCollection($oIE, "div") Local $aResults2[1] For $oTag2 In $oTags2 if $oTag2.GetAttribute("class") == "NewsDetail" Then _ArrayAdd($aResults2, $oTag2.innerTEXT) EndIf Next $aResults2[0] = UBound($aResults2) - 1 ConsoleWrite($aResults2[1] & @CRLF) Func Terminate() _IEQuit($oIE) Exit EndFunc ;==>Terminate  
    • SkysLastChance
      By SkysLastChance
      I am having a hard time understanding why this is not working. I was hoping some one could help explain it to me. 
      $tags = $oIE.document.GetElementsByTagName("input") For $tag in $tags $class_value = $tag.GetAttribute("class") If string($class_value) = "fTs-p3298-l0 wplEditControl" Then $target = $tag ExitLoop EndIF Next MsgBox(0,"",$target) If $target = "fTs-p3298-l0 wplEditControl" THEN MsgBox(0,"","itworked") I have tried 
       MsgBox(0,"",$target.Attribute)  MsgBox(0,"",$target.Value)  MsgBox(0,"",$target.InnerText) I would expect to see this in the msgbox
      fTs-p3298-l0 wplEditControl  
    • SkysLastChance
      By SkysLastChance
      I am trying to grab the id "in2xk_26" however it the characters before the underscore always change. (in the name too)
      Is there a way I can find a id or name by the last 3 charcters?
      Using something like "stringright?"
      So I would want to search for just "_26" in this case.
      This is assuming that there are no other _26
       

      #include <Excel.au3> #include <IE.au3> #include <GUIConstantsEx.au3> Global $iMousespeed = 25,$target = "",$TagName = "",$Value = "",$Atrribute = "" $oIE = _IEAttach("MEDITECH") $TagName = "input" $Value = "in2xk_26" $Attribute = "id" $tags = $oIE.document.GetElementsByTagName($TagName) ;TagName ------ MAKE SURE TO NAME THESE For $tag in $tags $class_value = $tag.GetAttribute($Attribute) ;Attribute ------ MAKE SURE TO NAME THESE If string($class_value) = $Value Then ;Value ------ MAKE SURE TO NAME THESE $target = $tag $iScreenX = _IEPropertyGet($target, "screenx") $iScreenY = _IEPropertyGet($target, "screeny") $iWidth = _IEPropertyGet($target, "width") $iHeight = _IEPropertyGet($target, "height") $oMouseCords = MouseMove($iScreenX + $iWidth / 2, $iScreenY + $iHeight / 2, $iMousespeed) MouseClick($MOUSE_CLICK_LEFT) ExitLoop EndIf Next  
       
    • SkysLastChance
      By SkysLastChance
      I was wondering how I read data inside of a iframe. I would like to be able to click something inside a iframe. However, I can't even find the tag. 
      The id and name change all the time so I can't use those. 
      The code highlighted in blue is what I am trying to click. (second picture)
      Here is what I have tried.
      $target = "" $tags = $oIE.document.GetElementsByTagName("div") For $tag in $tags $class_value = $tag.GetAttribute("class") If string($class_value) = "s_92 altstyle s_93 s_94" Then $target = $tag ConsoleWrite("Tag Found " & $target.outerText&@CRLF) ExitLoop EndIf Next  

       
       

    • SkysLastChance
      By SkysLastChance
       
      WinActivate("MEDITECH - Internet Explorer") Sleep (500) $oIE = _IEAttach("MEDITECH") $oDiv1 = _IEGetObjById($oIE, "sysmenu-searchbarbutton") _IEAction($oDiv1, "click") I am just trying to click the little magnifying glass, next to the gear button with no luck. I was hoping someone might have an idea why this is not working?
       

×