Jump to content

Only 64 bit compiled script works on Exchange


Recommended Posts

Afternoon everyone,

I have searched over the past several days, and could find an explanation to my question. I have a script that when run is setup to email the data in a form to a group of people using our exchange server. Most of our servers are 64 bit running 64 bit MS OS, with a few that are still 32 bit (being phased out) running older 32 bit MS OS. The 32 bit compiled version of my script works great, on both the 32 bit and 64 bit version of MS OS, with one exception. On our Exchange server, which is running 64 bit OS, I have to compile the script in x64 in order to get the email function to work. My question is why is this? Why does the compiled script work on every server, whether it is running a 64 bit MS OS or a 32 Bit MS OS, except when it is run on our Exchange server. I can provide part of the script if needed.

Thanks in advance.

Grimm

Thanks

Grimm

Link to comment
Share on other sites

One thing I think I forgot to mention, is that I am compiling this script as a 32 bit app so that it works on both the 32 bit MS OS and 64 bit MS OS Servers. So far it works great on both types, except when I run it on the 64 bit Exchange server. What happens is that it completes but the email is never sent/received. Therefore, I do not think that there is a specific line that is failing.

Here is the entire script:

#NoTrayIcon
#include <Timers.au3>
#include <misc.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <Process.au3>
#include <WinAPI.au3>
#include <GUIComboBox.au3>
#Include <String.au3>
#include <Icons.au3>
#include <GUITab.au3>
#include <GUIButton.au3>

    Global $goMyRet[2]
    Global $goMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

HotKeySet("#{F4}", "_exit") ; Ctrl-Shift-Alt-X to exit

_main()
Func _Main()
    while 1
        _GUI()
        WEnd
     EndFunc   ;==>_Main

Func _gui()
    Local $sUsername = @UserName ; User Name
    Local $sComputername = @ComputerName ; Computer Name
    Local $sText1 = ""; Output text for message box.
    Local $sText2 = ""; Output text for message box.
    Local $sTest3 = ""; Output text for message box.
    Local $combo1 = ""; Output text for combo box.
    Local Const $sDomain = 'domain.com'
    Local Const $sServer = "mail" & '.' & $sDomain
    Local Const $sSupportEmail = "user" & '@' & $sDomain
    ClipPut($sServer)
    $sText1 = "Username = " & $sUsername & @CRLF ; The & character concentrates (joins) two values together.
    $sText2 = "Computer Name = " & $sComputername & @CRLF ; The &= adds to the variable. The same as doing $var = $var & "extra stuff"

Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1)

TraySetOnEvent($TRAY_EVENT_PRIMARYUP,"SpecialEvent")

    Local $hMainwindow = GUICreate("HelpDesk App", 300, 620, Default, Default, BitAND($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_CONTEXTHELP)
    GUICtrlCreateLabel("Helpdesk App", 30, 10, 290, 40)
    GUICtrlSetFont(-1, 20, 800); bold

    GUICtrlCreateLabel($sText1, 25, 60)
    GUICtrlCreateLabel($sText2, 25, 78)
    local $hShinkButton = GUICtrlCreateButton("&Hide", 90, 550, 80) ;*Commented Out; Would like to learn how to create a form and clear the data
    Local $hOkButton = GUICtrlCreateButton("&Send", 180, 550, 80)


    ; _AddHorzSep(10, 40, 290)
    _AddHorzSep(10, 105, 280)
    _AddHorzSep(10, 210, 280)


    GUICtrlCreateLabel("*Please provide the above information when you contact the Help Desk for any hardware or software problems.", 20, 120, 250, 50)
    GUICtrlCreateLabel("Helpdesk #:", 85, 173)
    GUICtrlCreateLabel("&Helpdesk Email:", 70, 188)
    $hEmail = GUICtrlCreateLabel($sSupportEmail, 148, 188);helpdesk@domain.com"
    GUICtrlSetFont($hEmail, 8.5, -1, 4) ; underlined
    GUICtrlSetColor($hEmail, 0x0000ff)
    GUICtrlSetCursor($hEmail, 0)


    GUICtrlCreateLabel("Helpdesk Request Form", 30, 220, 270, 50)
    GUICtrlSetFont(-1, 15, 800); bold

    GUICtrlCreateLabel("Request &Type:", 25, 273, 75)
    Global $hCombo = GUICtrlCreateCombo("", 100, 270, 160) ; create first item
    GUICtrlSetData(-1, "Keyboard/Mouse|Monitor|Desktop|Laptop|Other Hardware|Windows 7|Windows XP", "Keyboard/Mouse") ; add other item snd set a new default

    GUICtrlCreateLabel("&Subject:", 25, 303, 75)
    Global $hInputText = GUICtrlCreateInput("", 100, 300, 160)

    GUICtrlCreateLabel("Attach File:", 25, 333, 75)
    Global $hInputEdit2 = GUICtrlCreateEdit("", 100, 330, 160, Default, $ES_READONLY)
    $hBrowseButton = GUICtrlCreateButton("Browse", 185, 355, 75)

    GUICtrlCreateLabel("&Details:", 25, 363, 75)
    Global $hInputText2 = GUICtrlCreateEdit("", 25, 385, 235, 150, BitOR($ES_WANTRETURN, $ES_AUTOVSCROLL, $WS_VSCROLL, $ES_MULTILINE, $ES_NOHIDESEL))

GUISetState()


    While 1
        Switch GUIGetMsg()

            Case $hBrowseButton
                Global $file1 = FileOpenDialog('Choose file...', @DesktopDir, 'All Image Types (*.bmp;*.png;*.jpeg;*.gif;*.jpg;*.tiff)|Word (*.doc;*.docx;*.txt)', 1 + 4)
                Local $szDrive, $szDir, $szFName, $szExt
                $FilePath = _PathSplit($file1, $szDrive, $szDir, $szFName, $szExt)
;~                 _ArrayDisplay($TestPath, "Demo _PathSplit()")
                GuiCtrlSetData($hInputEdit2, $szFName & $szExt)

            Case $hOkButton
                $msg = "Subject: " & GUICtrlRead($hInputText) & @CRLF & @CRLF & "Details: " & GUICtrlRead($hInputText2) & @CRLF & @CRLF & "" & $sText1 & $sText2 & _wmigetcompinfo()
                If GUICtrlRead($hInputEdit2) = '' Then
                    Global $s_AttachFiles = ''
                Else
                    Global $s_AttachFiles = $file1
                EndIf
                OKButton($sServer, $sUsername, $sUsername & '@' & $sDomain, $sSupportEmail, "Issue: " & GUICtrlRead($hCombo), $msg)
                Sleep(10)
                _Cleardata()


            Case $hEmail
                OnEmail($sSupportEmail)
;-          Case $GUI_EVENT_CLOSE
;-                GUISetState(@SW_HIDE, $hMainwindow)

            Case $hShinkButton
                GUISetState(@SW_HIDE, $hMainwindow)
                TraySetState(1) ; show
                TraySetToolTip ("Helpdesk App")

EndSwitch



WEnd
EndFunc

Func _Cleardata()
GUICtrlSetData($hCombo, "Keyboard/Mouse")
GUICtrlSetData($hInputText, "")
GUICtrlSetData($hInputEdit2, "")
GUICtrlSetData($hInputText2, "")
Sleep(1000)

EndFunc


Func SpecialEvent()
   GUISetState(@SW_SHOW)
   TraySetState(2) ; hide
EndFunc

Func IsVisible($handle)
    If BitAND(WinGetState($handle), 2) Then
        Return 1
    Else
        Return 0
    EndIf

EndFunc   ;==>IsVisible

Func _AddHorzSep($iX, $iY, $iW)

    GUICtrlCreateLabel("", $iX, $iY, $iW, 1)
    GUICtrlSetBkColor(-1, 0x000000)


EndFunc   ;==>_AddHorzSep

Func _exit()
Do
$Pass = InputBox ("Password", "Please enter your password", "", "*M", 50, 150)
$Split = StringSplit ($Pass, "")
;~ If $Split[0] Then
$ConfirmPass = "pa$$w0rd"
If $Pass <> $ConfirmPass Then MsgBox (48, "Error", "Passwords do not match!!")
;~ EndIf
Until $Pass = $ConfirmPass

    SplashTextOn( "", "Closing", 150, 50)
    Sleep(2000)
    Exit
;~     EndIf
EndFunc


Func _wmigetcompinfo($strComputer = "localhost")
    ; Generated by AutoIt Scriptomatic November 30, 2012
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $sOutput = ""
    ;- $sOutput &= "Computer: " & $strComputer & @CRLF
    $sOutput &= ""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
            $wbemFlagReturnImmediately + $wbemFlagForwardOnly)


    If IsObj($colItems) Then
        For $objItem In $colItems
            $sOutput &= "Computer Status: " & $objItem.Status & @CRLF


        Next
    Else
        Return ("WMI not functional")
    EndIf

    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
            $wbemFlagReturnImmediately + $wbemFlagForwardOnly)


;-    If IsObj($colItems) Then
;-       For $objItem In $colItems
;-            MsgBox(0, "", "SerialNumber" & $objItem.IdentifyingNumber)
;-            $sOutput &= "SerialNumber: " & $objItem.IdentifyingNumber & @CRLF
;-        Next

        Return ($sOutput)

;-    EndIf

EndFunc   ;==>_wmigetcompinfo

Func WMIDateStringToDate($dtmDate)

    Return (StringMid($dtmDate, 5, 2) & "/" & _
            StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
             & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))
EndFunc   ;==>WMIDateStringToDate

Func OKButton($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $s_Body)
;~     $s_AttachFiles = ''

    $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $s_Body, $s_AttachFiles)
    ProgressOn("Progress", "Submitting your ticket...", "0 percent")
    For $i = 0 To 100 Step 20
        Sleep(500)
        ProgressSet($i, $i & " percent")
    Next
    ProgressSet(100, "Done", "Complete")
    Sleep(500)
    ProgressOff()
    If @error Then
        MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
   Else
        SplashTextOn("HelpDesk App", "Your ticket has been submitted successfully", 300, 100)
        Sleep (2000)
        SplashOff()

;~ else
    EndIf

EndFunc   ;==>OKButton

Func OnEmail($sSupportEmail)
    Run(@ComSpec & " /c " & 'start mailto:' & $sSupportEmail, "", @SW_HIDE)
EndFunc   ;==>OnEmail

Func CLOSEClicked()
    ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
    ;and @GUI_WINHANDLE would equal $hMainwindow

    Exit
 EndFunc   ;==>CLOSEClicked


;
; The UDF
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $sBody = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)

    Local $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
        Local $i_Error = 0
    Local $i_Error_desciption = ""
;~    If $MyManager <> "" Then
;~    $objEmail.Cc = $MyManager
;~    EndIf
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($sBody, "<") And StringInStr($sBody, ">") Then
        $objEmail.HTMLBody = $sBody
    Else
        $objEmail.Textbody = $sBody & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
        Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
        For $x = 1 To $S_Files2Attach[0]
            $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
;~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
            If FileExists($S_Files2Attach[$x]) Then
                ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)
                $objEmail.AddAttachment($S_Files2Attach[$x])
            Else
                ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
                SetError(1)
                Return 0
            EndIf
        Next
    EndIf
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    If Number($IPPort) = 0 Then $IPPort = 25
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $ssl Then
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Set Email Importance
    Switch $s_Importance
        Case "High"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "High"
        Case "Normal"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Normal"
        Case "Low"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update
    ; Sent the Message
    $objEmail.Send
    If @error Then
        SetError(2)
        Return $goMyRet
    EndIf
    $objEmail = ""
EndFunc   ;==>_INetSmtpMailCom
;
;
; Com Error Handler

Func MyErrFunc()
    $HexNumber = Hex($goMyError.number, 8)
    $goMyRet[0] = $HexNumber
    $goMyRet = StringStripWS($goMyError.description, 3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $goMyError.scriptline & " Description:" & $goMyRet & @LF)
    SetError(1); something to check for when this function returns
    Return
EndFunc   ;==>MyErrFunc

 

Thanks,

Grimm

Thanks

Grimm

Link to comment
Share on other sites

what about disabling redirection, magically fixes most of my x86/x64 issues?

DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

 

Edited by boththose

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

You have a COM error handler implemented in your script but the eror messages are written to the Console. This doesn't work for compiled GUI scripts.

Can you replace ConsoleWrite with FileWriteLine so we can see what happens?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Boththose,

Please forgive my ignorance, but where, in the script, would I put the DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)?

Water,

I did a splashtexton and got a screenshot of the output, and attached the screenshot.

Thanks.

post-76479-0-87272000-1394487841_thumb.p

Thanks

Grimm

Link to comment
Share on other sites

I just slap it at the top,  or right before its needed (usually a stack of registry commands).  It is my understanding it only does so for the duration of the script (or i suppose the same call with a 0)

search led me to this:  https://www.autoitscript.com/autoit3/docs/intro/64-bit_support.htm

i have never used the WinAPI method though, and I predict Water will end up leading a more well-lit path than mine.

 

edit: lighter does not mean "more well-lit"

Edited by boththose

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

It looks like CDO is not installed on the Exchange server. Depending on the server version it is no longer part of the Exchange installation.

Check this.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Thank you all for your help, I wanted to update this post with the following information:

I installed Autoit and SciTE onto the exchange server so I could get a better reading on lines that are having appear to be having the issues. They appear to be in this section:

Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $sBody = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)

    Local $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
        Local $i_Error = 0
    Local $i_Error_desciption = ""
;~    If $MyManager <> "" Then
;~    $objEmail.Cc = $MyManager
;~    EndIf
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($sBody, "<") And StringInStr($sBody, ">") Then
        $objEmail.HTMLBody = $sBody
    Else
        $objEmail.Textbody = $sBody & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
        Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
        For $x = 1 To $S_Files2Attach[0]
            $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
;~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
            If FileExists($S_Files2Attach[$x]) Then
                ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)
                $objEmail.AddAttachment($S_Files2Attach[$x])
            Else
                ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
                SetError(1)
                Return 0
            EndIf
        Next
    EndIf
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    If Number($IPPort) = 0 Then $IPPort = 25
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $ssl Then
        $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Set Email Importance
    Switch $s_Importance
        Case "High"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "High"
        Case "Normal"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Normal"
        Case "Low"
            $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update
    ; Sent the Message
    $objEmail.Send
    If @error Then
        SetError(2)
        Return $goMyRet
    EndIf
    $objEmail = ""
EndFunc   ;==>_INetSmtpMailCom

The line numbers are 272, 273, 280, 284, 301, 302, 304, 315, 321, 325, 327. Which are

    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    
    $objEmail.Subject = $s_Subject
    
    $objEmail.Textbody = $sBody & @CRLF
    
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    
    $objEmail.Configuration.Fields.Update
    
    $objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Normal"
    
    $objEmail.Fields.Update
    
    $objEmail.Send
Edited by grimmlock

Thanks

Grimm

Link to comment
Share on other sites

I was looking for the writes to the registry and found Some legacy OS and cdo.message troubleshooting.  While im not being useful.

http://support.microsoft.com/kb/910360

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

Update:

Thank you all for your Help. I do not know how or why but apparently I asked this question last year, and the solution was to just compile the script in x64 which will soon work once we move all of our MS Servers from 32 bit to 64 bit. In my earlier post there was a reference (from Water, sorry Water), like in this post, to CDO and Obj.Create. After doing some digging online, I came across this article https://groups.google.com/forum/#!topic/microsoft.public.scripting.vbscript/P1HWPmBHL8o which referenced this: regsvr32 C:WindowsSysWOW64cdosys.dll. On our 64 bit exchange server I ran this command and now I am able to successfully run the 32 bit compiled script / app.

Thank you to Water, Boththose and Danp2 for all of you help and for your patience with me. :sweating:

Have a great rest of the day!

:ph34r:

Edited by grimmlock

Thanks

Grimm

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...