none
Problem d'envoit message sans serveur SMTP RRS feed

  • Discussion générale

  • Bonjour

    Je cherche une procédure qui permette à mon programme, après publication,  de m'envoyer un message en cas de levée dune exception.

    Je suis parti de l'article de Peter Bromberg (http://www.nullskull.com/articles/20030316.asp)

    Mon code est le suivant

    Public Function Send(from AsString, oTo AsString, subject AsString, text AsStringAsBooleanDim message AsNewMailMessage(from, oTo, subject, text)        Return Send(message)    End Function

    Public Shared Function Send(message As MailMessageAs Boolean
            'Dim IPhst As IPHostEntry = Dns.Resolve(SmtpServer)
            Dim IPhst As IPHostEntry = Dns.GetHostEntry(SmtpServer)
            Dim endPt As New IPEndPoint(IPhst.AddressList(0), 993)
            Dim s As New Socket(endPt.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
            s.Connect(endPt)
     
            If Not Check_Response(s, SMTPResponse.CONNECT_SUCCESS) Then
                s.Close()
                Return False
            End If
    End Function

                     


    Private Shared Function Check_Response(s As Socket, response_expected As SMTPResponse) As Boolean
           Dim sResponse As String
           Dim response As Integer
           Dim bytes As Byte() = New Byte(1023) {}
           While s.Available = 0
               Threading.Thread.Sleep(100)
           End While
     
           s.Receive(bytes, 0, s.Available, SocketFlags.None)
           sResponse = Encoding.ASCII.GetString(bytes)
           response = Convert.ToInt32(sResponse.Substring(0, 3))
           If response <> CInt(response_expected) Then
               Return False
           End If
           Return True
       End Function

                                        Les paramètres de la fonction Send sont : "bernar@bouree.net", "bernard@bouree.net"   , "TEST" ,"Test d'envoit par Bernard"

    Quand je lance le programme j'obtient bien l' IPHostEntry, puis deux adresses IP dans IPEndPoint et enfin le Socket renvoit la propriété Connected=True

    Mais dans la procédure  Check_Response

    la propriété Available reste toujours à 0 dans une boucle sans fin.

    Merci pour votre aide.

    Bernard

    
    


    Bernard Bouree

    mardi 28 juin 2016 11:42

Toutes les réponses

  • Bonjour BernardBouree,

    Je vous conseille de convertir le code en bas, j'espère qu'il vous sera utile :

    Troubles with polish characters MIME format for Email sending

    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    mercredi 29 juin 2016 11:41
    Modérateur
  • Bonjour

    Excusez moi mais je ne vois pas le rapport avec mon problème!

    Bernard


    Bernard Bouree

    jeudi 30 juin 2016 10:50
  • Bonjour Bernard,

    Veuillez m'excuser, le lien est corrigé.
    Est-ce que le type de votre variable SMTPResponse correspond au premier lien (corrigé) ou il s'agit de cette structure ?:
    SmtpResponse Structure


    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 juin 2016 12:55
    Modérateur
  • Bonjour Teodora

    Non le lien n'est pas corrigé.

    Pouvez vous me le redonner?

    SMTPResponse est une Enum

     Private Enum SMTPResponse As Integer
            CONNECT_SUCCESS = 220
            GENERIC_SUCCESS = 250
            DATA_SUCCESS = 354
            QUIT_SUCCESS = 221
        End Enum

    Merci

    Bernard


    Bernard Bouree

    jeudi 30 juin 2016 16:03