+ Post New Thread
Results 1 to 6 of 6
Scripts Thread, VB/AutoIt Script Sending An Email in Coding and Web Development; Anyone got a script that will send an email using external smtp server (not a smtp relay sever so the ...
  1. #1

    russdev's Avatar
    Join Date
    Jun 2005
    Location
    Leicestershire
    Posts
    6,873
    Thank Post
    650
    Thanked 534 Times in 353 Posts
    Blog Entries
    3
    Rep Power
    200

    VB/AutoIt Script Sending An Email

    Anyone got a script that will send an email using external smtp server (not a smtp relay sever so the script has to login in). Idea the script will be run by user if they see a problem with the computer they are on.

    The script will then ask for input about issue then it send support an email with machine name, user logged in and info they entered.

    Can do most of the script it is the email part hitting a brick wall with..

    Russ

  2. #2

    webman's Avatar
    Join Date
    Nov 2005
    Location
    North East England
    Posts
    8,374
    Thank Post
    625
    Thanked 951 Times in 653 Posts
    Blog Entries
    2
    Rep Power
    318
    AutoIt has a _INetSmtpMail function which allows you to specify the SMTP server. The requirement for logging in is usually dependant on the mail server you use and how it's configured.

  3. #3

    russdev's Avatar
    Join Date
    Jun 2005
    Location
    Leicestershire
    Posts
    6,873
    Thank Post
    650
    Thanked 534 Times in 353 Posts
    Blog Entries
    3
    Rep Power
    200
    @webman; Thanks the logging into server point was just so people knew it wasn't a relay.

    Russ

  4. #4

    Join Date
    Jun 2010
    Posts
    2
    Thank Post
    1
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    You considered using blat ?

    happy mailing : Blat online

  5. #5
    superfletch's Avatar
    Join Date
    Nov 2007
    Location
    South
    Posts
    432
    Thank Post
    145
    Thanked 77 Times in 61 Posts
    Rep Power
    30
    Something like this (where you add the GUI which asks for the username and password??)

    Credit goes to Jos on the AutoIt forum.



    $SmtpServer = "post.rmplc.co.uk" ; address for the smtp-server to use - REQUIRED
    $FromName = "Display Name" ; name from who the email was sent
    $FromAddress = "from@emailaddress.com" ; address from where the mail should come
    $ToAddress = "to@emailaddress.com" ; destination address of the email - REQUIRED
    $Subject = "Subject line" ; subject from the email - can be anything you want it to be
    $Body = "Message Body" ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = ($Varfile) ; the file you want to attach- leave blank if not needed
    $CcAddress = "" ; address for cc - leave blank if not needed
    $BccAddress = "" ; address for bcc - leave blank if not needed
    $Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
    $Username = "myemail@mydomain.ext" ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "mypassword" ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25 ; port used for sending the mail
    $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS

    ;##################################
    ; Script
    ;##################################


    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf
    ;
    ; The UDF
    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $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 $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @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(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
    If FileExists($S_Files2Attach[$x]) Then
    $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:Impo rtance") = "High"
    Case "Normal"
    $objEmail.Fields.Item("urn:schemas:mailheader:Impo rtance") = "Normal"
    Case "Low"
    $objEmail.Fields.Item("urn:schemas:mailheader:Impo rtance") = "Low"
    EndSwitch
    $objEmail.Fields.Update
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail = ""
    EndFunc ;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description, 3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc ;==>MyErrFunc

  6. #6
    box_l's Avatar
    Join Date
    May 2007
    Location
    Herefordshire
    Posts
    403
    Thank Post
    63
    Thanked 84 Times in 69 Posts
    Rep Power
    60
    Hope these help

    VBScript To Send Email Using CDO
    (about half way down the page for using an external server

    VBS Script to send email using specified exchange account

    BoX

SHARE:
+ Post New Thread

Similar Threads

  1. CMD HIDE SCRIPT (AutoIT)
    By Venom4444 in forum Scripts
    Replies: 1
    Last Post: 18th July 2010, 10:48 PM
  2. AutoIT Script
    By My220x in forum Scripts
    Replies: 2
    Last Post: 13th September 2008, 05:29 AM
  3. AutoIt time script
    By My220x in forum Scripts
    Replies: 2
    Last Post: 17th May 2008, 08:07 PM
  4. AutoIt Script Help - Get Last Changed File
    By russdev in forum Scripts
    Replies: 8
    Last Post: 8th August 2007, 05:34 AM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •