Sign in to follow this  
Followers 0
supadodger

cant figure out why this is sending nonstop emails

7 posts in this topic

i only want it to hit 1 when i hit send but it keeps sending until i kill it myself.

#include <GUIConstantsEx.au3>
#include <INet.au3>
#Include<file.au3>
$read_name=1
$Read_Email=1
$appname = "Big Bobs Big Peter"
$uuid = "565B3559-4B1A-0004-0000-000000000000"
$GUI = GUICreate("GM Application", 270,  327, -1, -1)
$Label_Name = GUICtrlCreateLabel("Whats your name?", 10, 10)
$Input_Name = GUICtrlCreateInput("", 10, 30, 200)
;$Label_Account = GUICtrlCreateLabel("Whats your Email?", 130, 10)
;$Input_Account = GUICtrlCreateInput("", 130, 30, 100)
$Label_Know = GUICtrlCreateLabel("Registration Key", 10, 60)
$Input_Know = GUICtrlCreateInput($UUID, 10, 80,250)
$Label_Why = GUICtrlCreateLabel(@CRLF & "If Automated Registration Fails " & @CRLF & "Email This Code To :", 10, 110)
$Edit_Why = GUICtrlCreateInput("SexySleepieGirl@Gmail.com" , 10, 150,250,20)
$Label_Email = GUICtrlCreateLabel("Whats you email?", 10, 240)
$Input_Email = GUICtrlCreateInput("name123@example.com", 10, 260, 250)
$Send = GUICtrlCreateButton("Send Application!", 87, 290)
$SmtpServer = "smtp.**********.net"              ; address for the smtp-server to use - REQUIRED
$FromName = $Read_Name                      ; name from who the email was sent
$FromAddress = $Read_Email ; address from where the mail should come
$ToAddress = "djpapsta@gmail.com"   ; destination address of the email - REQUIRED
$Subject = $appname & " registration"                   ; subject from the email - can be anything you want it to be
$Body = $UUID                               ; the messagebody from the mail - can be left blank but then you get a blank mail
$AttachFiles = ""                       ; 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 = "registration@*********.net"                    ; username for the account used from where the mail gets sent - REQUIRED
$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

GUISetState()
While 1
    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
    $nMsg = GUIGetMsg()
    Select
    Case $nMsg = -3
        Exit
    Case $nMsg = $Send
        $Read_Name = GUICtrlRead($Input_Name)
        ;$Read_Account = GUICtrlRead($Input_Account)
        $Read_Know = GUICtrlRead($Input_Know)
        $Read_Why = GUICtrlRead($Edit_Why)
        $Read_Email = GUICtrlRead($Input_Email)
        $Mail = $rc
        MsgBox (4096,"Registration Sent","Your Registration Has Been Sent" & @CRLF & "We Will Process Your Registration ASAP",30)
        Exit
    EndSelect
WEnd
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: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 $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

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Sounds logica when you put the _InetSmtpMailCom() function call at the top of the main loop instead within an If-EndIf.

Jos

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Because that is what you are telling it to do...

[bunch of variables]
[start loop]
   [set up error function]
   [send message]
[end loop]
[some functions]

[u]Helpful tips:[/u]If you want better answers to your questions, take the time to reproduce your issue in a small "stand alone" example script whenever possible. Also, make sure you tell us 1) what you tried, 2) what you expected to happen, and 3) what happened instead.[u]Useful links:[/u]BrettF's update to LxP's "How to AutoIt" pdfValuater's Autoit 1-2-3 Download page for the latest versions of Autoit and SciTE[quote]<glyph> For example - if you came in here asking "how do I use a jackhammer" we might ask "why do you need to use a jackhammer"<glyph> If the answer to the latter question is "to knock my grandmother's head off to let out the evil spirits that gave her cancer", then maybe the problem is actually unrelated to jackhammers[/quote]

Share this post


Link to post
Share on other sites

i thought

Case $nMsg = $Send
        $Read_Name = GUICtrlRead($Input_Name)
        ;$Read_Account = GUICtrlRead($Input_Account)
        $Read_Know = GUICtrlRead($Input_Know)
        $Read_Why = GUICtrlRead($Edit_Why)
        $Read_Email = GUICtrlRead($Input_Email)
        $Mail = $rc

would mean only to to send if i hit Send Button Right?

Share this post


Link to post
Share on other sites

The line:

$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)

is the line that sends the email. If you move that line to the end of that case statement it will probably do what you want


[u]Helpful tips:[/u]If you want better answers to your questions, take the time to reproduce your issue in a small "stand alone" example script whenever possible. Also, make sure you tell us 1) what you tried, 2) what you expected to happen, and 3) what happened instead.[u]Useful links:[/u]BrettF's update to LxP's "How to AutoIt" pdfValuater's Autoit 1-2-3 Download page for the latest versions of Autoit and SciTE[quote]<glyph> For example - if you came in here asking "how do I use a jackhammer" we might ask "why do you need to use a jackhammer"<glyph> If the answer to the latter question is "to knock my grandmother's head off to let out the evil spirits that gave her cancer", then maybe the problem is actually unrelated to jackhammers[/quote]

Share this post


Link to post
Share on other sites

The line:

$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)

is the line that sends the email. If you move that line to the end of that case statement it will probably do what you want

i meant to say.

i moved the call to the end of the case statement but

and i thought that code should stop that from happening.

it still sends nonstop

Share this post


Link to post
Share on other sites

i meant to say.

i moved the call to the end of the case statement but

and i thought that code should stop that from happening.

it still sends nonstop

i removed the $rc = & changed $mail = $rc to $mail = _INetSmtpMailCom($SmtpServer,

and all seems to be working now.

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  
Followers 0