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 ...
-
30th June 2010, 12:32 PM #1 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
-
-
IDG Tech News
-
30th June 2010, 12:37 PM #2 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.
-
-
30th June 2010, 12:42 PM #3 @webman; Thanks the logging into server point was just so people knew it wasn't a relay.
Russ
-
-
30th June 2010, 01:02 PM #4
- Rep Power
- 0
You considered using blat ?
happy mailing : Blat online
-
-
30th June 2010, 03:13 PM #5 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
-
-
1st July 2010, 10:45 PM #6
-
SHARE: 
Similar Threads
-
By Venom4444 in forum Scripts
Replies: 1
Last Post: 18th July 2010, 10:48 PM
-
By My220x in forum Scripts
Replies: 2
Last Post: 13th September 2008, 05:29 AM
-
By My220x in forum Scripts
Replies: 2
Last Post: 17th May 2008, 08:07 PM
-
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
-
Forum Rules