Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έφτιαξα ένα σύστημα αποστολής μαζικών email

αλλα όταν πατάω το κουμπί send μου βγάζει το ακόλουθο μήνυμα

 

 

 

wf53.png

Δημοσ.
Δημοσ.

Ευχαριστώ αλλα δεν ξέρω σε ποιο σημείο του κώδικα να βάλω αυτά που έστειλες.

Αν θές και έχεις χρόνο κάνε ένα import στο Form1.vb

 

:) Σε ευχαριστώ πολύ φίλε μου :)

Form1.zip

Δημοσ.

Ενδιαφέρον.

 

Λογικά πρέπει να το κάνεις στο Form_Load event.

Private Sub EmailSender_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles MyBase.Load
        Try
            Dim tool As New ToolTip()

            tool.SetToolTip(TxtSenderUsername, "Input your email(s).")
            tool.SetToolTip(TxtSenderPassword, "Input your password.")
            tool.SetToolTip(TxtRecipientEmail, "Input your target email(s).")

            tool.SetToolTip(TxtRecipientCCEmail, "Input your CC email(s).")
            tool.SetToolTip(TxtRecipientBCCEmail, "Input your BCC email(s).")

            tool.SetToolTip(CheckBox1, "Enable/Disable CC emails?")
            tool.SetToolTip(CheckBox2, "Enable/Disable BCC emails?")

            tool.SetToolTip(TxtEmailSubject, "Input your email subject..")
            tool.SetToolTip(EmailMessage, "Input your email message.")
            tool.SetToolTip(ListBoxAttachmentsFiles, "List of file(s) to attach.")
            tool.SetToolTip(ButtonAttach, "Attach file(s).")
            tool.SetToolTip(ButtonRemoveFiles, "Remove file(s).")

            tool.SetToolTip(CheckBox3, "Send in Hmtl format?")
            tool.SetToolTip(RadioButton1, "Send with Low Priority?")
            tool.SetToolTip(RadioButton2, "Send with Normal Priority?")
            tool.SetToolTip(RadioButton3, "Send with High Priority?")
            tool.SetToolTip(RadioButton4, "Activate bomber?")
            tool.SetToolTip(RadioButton5, "Ativate mail count?")
            tool.SetToolTip(NumericUpDown1, "Input number of mails to send.")
            tool.SetToolTip(ButtonClearData, "Clear all information.")
            tool.SetToolTip(ButtonSend, "Send mail.")
            tool.SetToolTip(Buttonclose, "Close program.")
            
            Me.BackgroundWorker1.WorkerSupportsCancellation = true
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Email Error", MessageBoxButtons.OK, _
               MessageBoxIcon.Stop)
        End Try
    End Sub

Εναλλακτικά θα μπορούσες να το κάνεις και μέσα από το designer επιλέγοντας το BackgroundWorker component και αλλάζοντας την τιμή του property WorkerSupportsCancellation σε true από εκεί.Η default τιμή είναι false για αυτό και έσκαγε στην πρώτη απόπειρα cancel.

Δημοσ.

Το δοκίμασα αλλα δεν. Τώρα :cry: δεν κάνει τίποτα :cry: ..

τουλάχιστον πρίν έτρωγα ενα Error χαχα

 

Πάρε αν θες το Full Project και δες τι κανω λάθος και  κράτα το αν σου αρέσει...

 

 

Ευχαριστώ για τον χρόνο σου.

EmailSender.zip

Δημοσ.

Φυσικά και δεν κάνει τίποτα αφού δεν είναι σωστός ο έλεγχος στην SendEmail.

        If RadioButton4.Checked = True Then
                If ButtonSend.Text = "Send" Then
                    Me.BackgroundWorker1.RunWorkerAsync()
                    TextBoxSentMails.Text = "0"
                    disablegroupboxes()
                    ButtonSend.Text = "Cancel"
                Else
                    Me.BackgroundWorker1.CancelAsync()
                    enablegroupboxes()
                    ButtonSend.Text = "Send"
                End If
            ElseIf RadioButton5.Checked = True Then
                If NumericUpDown1.Value <= "0" Then
                    MessageBox.Show("Input amount of emails to send.", 
                       "Email Error", MessageBoxButtons.OK, _
                       MessageBoxIcon.Stop)
                Else
                    If ButtonSend.Text = "Send" Then
                        Me.BackgroundWorker1.RunWorkerAsync()
                        TextBoxSentMails.Text = "0"
                        disablegroupboxes()
                        ButtonSend.Text = "Cancel"
                    Else
                        Me.BackgroundWorker1.CancelAsync()
                        enablegroupboxes()
                        ButtonSend.Text = "Send"
                    End If
                End If
            End If

Εκτελεί την  Me.BackgroundWorker1.RunWorkerAsync() αν το κείμενο του ButtonSend είναι Send αλλιώς κάνει cancel.

Για βάλε ένα watch για το κείμενο ButtonSend.Text και δες.

 

Σημείωση:Για να κάνει report ο backgroundWorker το Progress πρέπει το property WorkerReportsProgress να είναι επίσης true.Tελικά έχουμε

Me.BackgroundWorker1.WorkerReportsProgress = True
Me.BackgroundWorker1.WorkerSupportsCancellation = True
Δημοσ.

Όταν κάνεις βηματική εκτέλεση στο πρόγραμμα σου μέσα από το Visual Studio μπορείς να βλέπεις τις τιμές των μεταβλητών σου προσθέτοντας Watches (σκοπιές στα ελληνικά ίσως).

 

Αρχικα τοποθετούμε breakpoints στον κώδικα μας.Πρόσθεσε ένα στην ButtonSend_Click.Ένα ακόμα στην ValidateEmail.Ένα στην SendEmail και τέλος ένα στην BackgroundWorker1_DoWork.

Μετά Visual Studio πατάμε το F5(Start debugging).Η εκτέλεση θα σταματήσει στο πρώτο breakpoint που βρήκε στην ButtonSend_Click.

Με το F11(Step Into) συνεχίζει την εκτέλεση δείχνοντας και την εκτέλεση όποιων συναρτήσεων συναντήσει.Το κίτρινο βελάκι δείχνει ποια εντολή εκτελείται.Με το F10 (Step Over) συνεχίζει την εκτέλεση χωρίς να σου δείχνει και την εκτέλεση πιθανών συναρτήσεων που βρίσκει στον κώδικα.Πάτα ένα από τα δυο παραπάνω options (καλύτερα το F11) μέχρι να φτάσεις στην SendEmail.

Εκεί επέλεξε το κείμενο ButtonSend.Text στον vb κώδικα σου και δεξί click.Βρες την επιλογή Αdd Watch.Kαι δες την τιμή που έχει (Value) όπως θα δεις δεν είναι σωστό είναι το "     Send" και όχι "Send" για το οποίο ελέγχεις εσύ.Διόρθωσε το παραπάνω και ξαναδοκίμασε.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...