Smtp host localiseren en gebruiken

Status
Niet open voor verdere reacties.

st0ne2thedge

Gebruiker
Lid geworden
26 nov 2008
Berichten
43
Om automatisch een smtp host te vinden om vervolgens die host te gebruiken om een email te verzenden had ik gedacht dat mn volgende code wel zou gelukt hebben...

Code:
Option Strict On
Option Explicit On

Imports System.Net.Mail
Imports System.Net.Mail.SmtpClient

Public Class FrmMain

    Private mailMsg As MailMessage
    Private WithEvents smtpCl As New SmtpClient
    Private smtpLijst As New List(Of String)

    Private userToken As Object

    Private smtpNr As Integer

    Private host As String

    Public Sub New()

        InitializeComponent()

        smtpNr = 0

        smtpLijst.Add("smtp.colt.net")
        smtpLijst.Add("smtp.euronet.be")
        smtpLijst.Add("smtp.antw.online.be")
        smtpLijst.Add("smtp.brus.online.be")
        smtpLijst.Add("uit.pandora.be")

        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 100

    End Sub

    Private Sub SendMsg()

        host = smtpLijst.Item(smtpNr)

        mailMsg = New MailMessage("<eenemailadres>", "<eenemailadres>", "sqdfqsdf", "Deze mail verzendt autmomatisch via een automatisch gezochte smtp host")

        smtpCl = New SmtpClient(host, 25)

        Try
            smtpCl.SendAsync(mailMsg, userToken)
        Catch ex As Exception
            If Not ex.GetBaseException.ToString.Contains(host) Then
                MessageBox.Show(ex.Message)
            Else
                If Not smtpNr >= smtpLijst.Count - 1 Then
                    smtpNr += 1
                    smtpCl = Nothing
                    mailMsg = Nothing
                    SendMsg()
                End If
            End If
        End Try

    End Sub

    Private Sub smtpCl_SendCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles smtpCl.SendCompleted
        If e.Error IsNot Nothing Then
            If Not smtpNr >= smtpLijst.Count - 1 Then
                smtpNr += 1
                smtpCl = Nothing
                mailMsg = Nothing
                SendMsg()
            End If
        Else
            MsgBox("Verzonden")
        End If
        If e.Cancelled Then
            MsgBox("Geannuleerd")
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVerzend.Click
        SendMsg()
    End Sub

    Private Sub LblStatus_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LblStatus.TextChanged
        If LblStatus.Text.Contains("...") Then
            LblStatus.Image = My.Resources.ajax_loader
        Else
            LblStatus.Image = Nothing
        End If
    End Sub

... maar mijn computer flipt gwn ofzo, het kan ook zijn dat het gewoon lang duurt maar internet laadt dan ook niet meer :eek:

ps: het verzenden lukt als ik gewoon de juiste host opgeef dus de informatie die ik heb ingevoerd klopt.
 
ff ter informatie

Dit is niet echt een consistente manier van mails verzenden helaas:p
als je dit probeert vanuit Nederland ben je op die manier toch wel iets meer dan een half uur bezig...
 
Dit is niet echt een consistente manier van mails verzenden helaas:p
als je dit probeert vanuit Nederland ben je op die manier toch wel iets meer dan een half uur bezig...

UPDATE;
+de foutencontrole moet nog heel wat verbeterd worden
+Als het dan toch zou gebruikt worden mss backgroundworker gebruiken
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan