begin process at 2012 02 12 16:14:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > ANONYM MAIL SIMPLE ET EXPLIQUÉ (WINSOCK + PROGRESSBAR)

ANONYM MAIL SIMPLE ET EXPLIQUÉ (WINSOCK + PROGRESSBAR)


 Information sur la source

Note :
8,71 / 10 - par 7 personnes
8,71 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :envoyer, mail, winsock Niveau :Débutant Date de création :10/02/2002 Date de mise à jour :10/02/2002 03:31:45 Vu / téléchargé :13 204 / 1 408

Auteur : Repie

Ecrire un message privé
Commentaire sur cette source (26)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Si vous voulez un example regarder la capture d'écran
Le code est pas compliké, y a aussi une bonne gestion de la barre de progression(lettres apres lettres)
Pour l'instant on peut envoyer qu'à une personne

Source

  • dans le module
  • ------------------
  • Option Explicit
  • Public Type Retour
  • valeur As Boolean
  • libelle As String
  • End Type
  • Public Function Vérification_Champs() As Retour
  • Dim temp As Retour
  • temp.valeur = False
  • If F.Text_Serveur.Text = "" Then temp.libelle = "Vous devez remplir le champ [Serveur]": Vérification_Champs = temp: Exit Function
  • If F.Text_Mail_Dest.Text = "" Then temp.libelle = "Vous devez remplir le champ du [Mail Destinataire]": Vérification_Champs = temp: Exit Function
  • temp.valeur = True
  • Vérification_Champs = temp
  • End Function
  • Public Function Recup(ByVal temp As String, code As Integer) As Boolean
  • If Val(Mid(temp, 1, 3)) = code Then
  • Recup = True
  • Else
  • Recup = False
  • End If
  • End Function
  • Dans la frame
  • -----------------
  • Dim Etape As Integer
  • Dim Erreur As Boolean
  • Private Sub Command1_Click()
  • Dim ret
  • Dim temp As Retour
  • Erreur = False
  • MousePointer = fmMousePointerAppStarting
  • temp = Vérification_Champs
  • If temp.valeur = False Then 'Erreur
  • ret = MsgBox(temp.libelle, vbCritical, "Erreur")
  • MousePointer = fmMousePointerDefault
  • Else 'On met en forme les données
  • Etape = 0
  • If Not W.State = 0 Then W.Close
  • DoEvents
  • W.RemoteHost = Text_Serveur.Text
  • W.Connect
  • End If
  • End Sub
  • Private Sub Form_Load()
  • W.RemotePort = 25
  • W.LocalPort = 1003
  • Bar.max = 60
  • End Sub
  • Private Sub W_DataArrival(ByVal bytesTotal As Long)
  • Dim Temp_Recep, Temp_Envoi As String
  • Dim ret
  • W.GetData Temp_Recep, vbString
  • Select Case Etape
  • Case 0
  • If Recup(Temp_Recep, 220) Then
  • '''''''''''' Recup du nom du serveur pour la commande "HELO {Nom du serveur}"
  • Temp_Envoi = "HELO " & Text_Serveur
  • Envoyer (Temp_Envoi)
  • Else
  • MsgBox ("Problème lors de la Connexion" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • End If
  • Case 1 'On est connecté et on a envoyer "HELO {Nom du serveur}"
  • If Recup(Temp_Recep, 250) Then
  • '''''''''''' Le Helo est bien pris en compte et on peux commencer à envoyer...
  • Temp_Envoi = "MAIL FROM: " & "<" & Text_Mail_Emet & ">"
  • Envoyer (Temp_Envoi)
  • Else
  • '''''''''''' Le HELO est rejeté
  • MsgBox ("Problème lors de la réponse au HELO" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • End If
  • Case 2
  • If Recup(Temp_Recep, 250) Then
  • '''''''''''' Le MAIL FROM: est accepté
  • Temp_Envoi = "RCPT TO: " & "<" & Text_Mail_Dest & ">"
  • Envoyer (Temp_Envoi)
  • Else
  • '''''''''''' Le MAIL FROM: n'est pas accepté
  • MsgBox ("Problème lors de la réponse au MAIL FROM" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • End If
  • Case 3
  • If Recup(Temp_Recep, 250) Then
  • '''''''''''' Le RCPT est accepté, on a fait le plus dur ;)
  • Temp_Envoi = "DATA"
  • Envoyer (Temp_Envoi)
  • Else
  • '''''''''''' Le serveur n'est pas open relay ou alors le destinataire est inconnu
  • MsgBox ("Problème lors de la réponse au RCPT TO" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • End If
  • Case 4
  • If Recup(Temp_Recep, 354) Then
  • Temp_Envoi = ""
  • '''''''''''' Remplir les champs correspondant à l'emetteur
  • If Not Text_Nom_Emet = "" Or Not Text_Mail_Emet = "" Then
  • Temp_Envoi = "From: "
  • If Not Text_Nom_Emet = "" Then Temp_Envoi = Temp_Envoi & Chr(34) & Text_Nom_Emet & Chr(34) & " "
  • If Not Text_Mail_Emet = "" Then Temp_Envoi = Temp_Envoi & "<" & Text_Mail_Emet & ">"
  • Temp_Envoi = Temp_Envoi & vbCrLf
  • End If
  • ''''''''''' Remplir les champs correspondant au destinataire
  • Temp_Envoi = Temp_Envoi & "To: "
  • If Not Text_Nom_Dest = "" Then Temp_Envoi = Temp_Envoi & Chr(34) & Text_Nom_Dest & Chr(34) & " "
  • Temp_Envoi = Temp_Envoi & "<" & Text_Mail_Dest & ">" & vbCrLf
  • ''''''''''' Ajouter le sujet du mail
  • Temp_Envoi = Temp_Envoi & "Subject: " & Text_Sujet & vbCrLf & vbCrLf '2 sauts de lignes pour dire que l'on passe au corps du msg
  • ''''''''''' Ajouter le corps du message
  • Temp_Envoi = Temp_Envoi & Text_Msg & vbCrLf & "."
  • ''''''''''' On Envoie tout
  • Envoyer (Temp_Envoi)
  • Else
  • MsgBox ("Problème lors de la réponse au DATA" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • End If
  • Case 5
  • If Not Recup(Temp_Recep, 250) Then
  • ''''''' Si pb lors de la fin du message
  • MsgBox ("Problème lors de la fin du corps du message" & vbCrLf & Temp_Recep)
  • MousePointer = fmMousePointerDefault
  • Else
  • ''''''' Le message a bien été envoyé ;) C po cool ca?
  • End If
  • Envoyer ("QUIT")
  • Case 6
  • If Recup(Temp_Recep, 221) Then
  • If Not Erreur Then ret = MsgBox("Merci pour ce gentil programme" & vbCrLf & "qui m'a permis d'envoyer un" & vbCrLf & "E-mail @nonyme ;)", vbInformation, "Fin")
  • Else
  • MsgBox ("Problème lors de la déconnexion du serveur" & vbCrLf & Temp_Recep)
  • End If
  • Etape = -1
  • W.Close
  • MousePointer = fmMousePointerDefault
  • End Select
  • Etape = Etape + 1
  • End Sub
  • Private Sub W_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
  • MsgBox (Description)
  • If W.State = 7 Then
  • ''''''' Pour pas avoir le message MErci pour ce gentil prog....
  • Erreur = True
  • Envoyer ("quit")
  • DoEvents
  • Etape = 6
  • Else
  • W.Close
  • End If
  • MousePointer = fmMousePointerDefault
  • End Sub
  • Public Function Envoyer(temp As String)
  • Dim i, max, max_bar, comp_bar, delta_bar
  • ''''''''''' on envoi les lettres une à une et en mm temps on fait progresser la barre1
  • max = Len(temp)
  • Bar.Value = Etape * 10
  • delta_bar = 10 / Len(temp)
  • For i = 1 To max Step 1
  • W.SendData (Mid(temp, i, 1))
  • Bar.Value = Bar.Value + delta_bar
  • Next i
  • W.SendData (vbCrLf)
  • End Function
dans le module
------------------

Option Explicit

Public Type Retour
    valeur As Boolean
    libelle As String
End Type

Public Function Vérification_Champs() As Retour
    Dim temp As Retour
    temp.valeur = False
    If F.Text_Serveur.Text = "" Then temp.libelle = "Vous devez remplir le champ [Serveur]": Vérification_Champs = temp: Exit Function
    If F.Text_Mail_Dest.Text = "" Then temp.libelle = "Vous devez remplir le champ du [Mail Destinataire]": Vérification_Champs = temp: Exit Function
    temp.valeur = True
    Vérification_Champs = temp
End Function

Public Function Recup(ByVal temp As String, code As Integer) As Boolean
    If Val(Mid(temp, 1, 3)) = code Then
        Recup = True
    Else
        Recup = False
    End If
End Function


Dans la frame
-----------------

Dim Etape As Integer
Dim Erreur As Boolean

Private Sub Command1_Click()
    Dim ret
    Dim temp As Retour
    Erreur = False
    MousePointer = fmMousePointerAppStarting
    temp = Vérification_Champs
    If temp.valeur = False Then     'Erreur
        ret = MsgBox(temp.libelle, vbCritical, "Erreur")
        MousePointer = fmMousePointerDefault
    Else                            'On met en forme les données
        Etape = 0
        If Not W.State = 0 Then W.Close
        DoEvents
        W.RemoteHost = Text_Serveur.Text
        W.Connect
    End If
End Sub

Private Sub Form_Load()
    W.RemotePort = 25
    W.LocalPort = 1003
    Bar.max = 60
End Sub

Private Sub W_DataArrival(ByVal bytesTotal As Long)
    Dim Temp_Recep, Temp_Envoi As String
    Dim ret
    
    W.GetData Temp_Recep, vbString
    Select Case Etape
    Case 0
        If Recup(Temp_Recep, 220) Then
            '''''''''''' Recup du nom du serveur pour la commande "HELO {Nom du serveur}"
            Temp_Envoi = "HELO " & Text_Serveur
            Envoyer (Temp_Envoi)
        Else
            MsgBox ("Problème lors de la Connexion" & vbCrLf & Temp_Recep)
            MousePointer = fmMousePointerDefault
        End If
    Case 1          'On est connecté et on a envoyer "HELO {Nom du serveur}"
        If Recup(Temp_Recep, 250) Then
            '''''''''''' Le Helo est bien pris en compte et on peux commencer à envoyer...
            Temp_Envoi = "MAIL FROM: " & "<" & Text_Mail_Emet & ">"
            Envoyer (Temp_Envoi)
        Else
            '''''''''''' Le HELO est rejeté
            MsgBox ("Problème lors de la réponse au HELO" & vbCrLf & Temp_Recep)
            MousePointer = fmMousePointerDefault
        End If
    Case 2
        If Recup(Temp_Recep, 250) Then
            '''''''''''' Le MAIL FROM: est accepté
            Temp_Envoi = "RCPT TO: " & "<" & Text_Mail_Dest & ">"
            Envoyer (Temp_Envoi)
        Else
            '''''''''''' Le MAIL FROM: n'est pas accepté
            MsgBox ("Problème lors de la réponse au MAIL FROM" & vbCrLf & Temp_Recep)
            MousePointer = fmMousePointerDefault
        End If
    Case 3
        If Recup(Temp_Recep, 250) Then
            '''''''''''' Le RCPT est accepté, on a fait le plus dur ;)
            Temp_Envoi = "DATA"
            Envoyer (Temp_Envoi)
        Else
            '''''''''''' Le serveur n'est pas open relay ou alors le destinataire est inconnu
            MsgBox ("Problème lors de la réponse au RCPT TO" & vbCrLf & Temp_Recep)
            MousePointer = fmMousePointerDefault
        End If
    Case 4
        If Recup(Temp_Recep, 354) Then
            Temp_Envoi = ""
            '''''''''''' Remplir les champs correspondant à l'emetteur
            If Not Text_Nom_Emet = "" Or Not Text_Mail_Emet = "" Then
                Temp_Envoi = "From: "
                If Not Text_Nom_Emet = "" Then Temp_Envoi = Temp_Envoi & Chr(34) & Text_Nom_Emet & Chr(34) & " "
                If Not Text_Mail_Emet = "" Then Temp_Envoi = Temp_Envoi & "<" & Text_Mail_Emet & ">"
                Temp_Envoi = Temp_Envoi & vbCrLf
            End If
            
            ''''''''''' Remplir les champs correspondant au destinataire
            Temp_Envoi = Temp_Envoi & "To: "
            If Not Text_Nom_Dest = "" Then Temp_Envoi = Temp_Envoi & Chr(34) & Text_Nom_Dest & Chr(34) & " "
            Temp_Envoi = Temp_Envoi & "<" & Text_Mail_Dest & ">" & vbCrLf
            
            ''''''''''' Ajouter le sujet du mail
            Temp_Envoi = Temp_Envoi & "Subject: " & Text_Sujet & vbCrLf & vbCrLf '2 sauts de lignes pour dire que l'on passe au corps du msg
            
            ''''''''''' Ajouter le corps du message
            Temp_Envoi = Temp_Envoi & Text_Msg & vbCrLf & "."
            ''''''''''' On Envoie tout
            Envoyer (Temp_Envoi)
        Else
            MsgBox ("Problème lors de la réponse au DATA" & vbCrLf & Temp_Recep)
            MousePointer = fmMousePointerDefault
        End If
        Case 5
                
            If Not Recup(Temp_Recep, 250) Then
                ''''''' Si pb lors de la fin du message
                MsgBox ("Problème lors de la fin du corps du message" & vbCrLf & Temp_Recep)
                MousePointer = fmMousePointerDefault
            Else
                ''''''' Le message a bien été envoyé ;) C po cool ca?
            End If
                Envoyer ("QUIT")
        Case 6
            If Recup(Temp_Recep, 221) Then
                If Not Erreur Then ret = MsgBox("Merci pour ce gentil programme" & vbCrLf & "qui m'a permis d'envoyer un" & vbCrLf & "E-mail @nonyme ;)", vbInformation, "Fin")
            Else
                MsgBox ("Problème lors de la déconnexion du serveur" & vbCrLf & Temp_Recep)
            End If
            Etape = -1
            W.Close
            MousePointer = fmMousePointerDefault
    End Select
    Etape = Etape + 1
End Sub

Private Sub W_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox (Description)
    If W.State = 7 Then
        ''''''' Pour pas avoir le message MErci pour ce gentil prog....
        Erreur = True
        Envoyer ("quit")
        DoEvents
        Etape = 6
    Else
        W.Close
    End If
    MousePointer = fmMousePointerDefault
End Sub

Public Function Envoyer(temp As String)
Dim i, max, max_bar, comp_bar, delta_bar
''''''''''' on envoi les lettres une à une et en mm temps on fait progresser la barre1
max = Len(temp)
Bar.Value = Etape * 10
delta_bar = 10 / Len(temp)
For i = 1 To max Step 1
    W.SendData (Mid(temp, i, 1))
    Bar.Value = Bar.Value + delta_bar
Next i
W.SendData (vbCrLf)
End Function


 

 Conclusion

pour envoyer un mail:
-vous devez au moins remplir le champ serveur et l'adresse du destinataire
-le serveur SMTP doit etre celui qu'utilise le destinataire (pour bidule@wandoo.fr utiliser le serveur de wanadoo: mail.wanadoo.fr) ou alors un serveur "open relay" (c'est deja plus dur à trouver)

Je me suis pas renseigné assez mais pour ma part le serveur SMTP de monfournisseur me permet d'envoyer des mails à n'importe quels e-mail... Testez avec le votre...
Si vous avez d'autres questions ou peut etre des suggestions envoyer moi un message


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COOKIE(IE)-MODIF/AJOUT/SUPPR
Source avec Zip Source avec une capture TELNET SUPER EXPLIKE AVEC RICHTEXT + WINSOCK
Source avec Zip Source avec une capture POUR LES HABITANTS DE LA REGION PARISIENNE :)
Source avec Zip LA SOLUTION POUR LES CHEMINS ABRÉGÉS TYPE DOS
Source avec Zip Source avec une capture CHECKEUR DE MAIL (AVEC WINSOCK) MAJ!!!

 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

 Sources en rapport avec celle ci

Source avec Zip OCX DE TRANSFERT, ENVOYER UN FICHIER par Metos62
Source avec Zip Source avec une capture APPLICATION PERMETTANT DE VÉRIFIER L'ÉTAT DE BORNES WIFI EN ... par Jordan59
Source avec Zip ENVOI DE MESSAGE PAR WINSOCK par EddiePonpon
Source avec Zip Source avec une capture MESSAGERIE AVEC WINSOCK - ENVOYER, RECEVOIR, PIÈCES JOINTES par bremondpierrejean
ENVOYER UN E-MAIL AUTONOME (SANS MAPI) *- par Bitored

Commentaires et avis

Commentaire de leneuf22 le 10/02/2002 09:06:56

D'après ce que j'ai entendu, AOL ne permet pas d'envoyer des mails avec son serveur SMTP... :(
Merci quand même !

Commentaire de couriousous le 10/02/2002 14:14:53

tu peut utiliser le serveur mail.freesurf.ch

Commentaire de coco le 06/05/2002 11:51:53

Comment joindre un fichier au mail envoyé ?

Commentaire de Repie le 06/05/2002 13:46:16

Faut coder le ou les fichiers en base64 (format MIME). Je voulais le faire mais je trouve pas de RFC traduite... et sachant que y a quand meme 6 RFC sur le sujet ...

Commentaire de thepopolinux le 10/06/2003 13:13:44

Toutes les RFC en FR : http://abcdrfc.free.fr/

Commentaire de olivierXIII le 25/11/2003 19:36:12

Mouais non ca doit pas bien marcher.
J'avais déja fait le même prog, et avec smtp.tiscali.fr je pouvais envoyer des mail avec un expéditeur bidon uniquement aux adresses @tiscali.fr ou d'autres du genre @hotmail.com

Mais si j'envoyais a des gens @wanadoo.fr ou @free.fr, leur serveur devait filtrer car rien n'arrivait. Bien sur j'ai pas réussi à envoyer un mail depuis smtp.wanadoo.fr (je suis pas abonné).

Enfin, dans ton mail que tu va envoyer, ton IP est contenu dans le header, c'est pas tout a fait anonyme sauf pour ceux qui le savent pas : ils peuvent croire que Untel leur écrit en fait c'est qqn d'autre... C'est tout.

Commentaire de thepopolinux le 25/11/2003 20:04:18

tu prend le serv smtp de ton hébergeur ... tout connement ...
ou alors un serv smtp annonyme !

Pour l'ip tu dis nimp car si le serv ouvre un sock sur le serv smtp il va s'iddentifier avec son ip et non pas la tienne. Le destinataire ne verra donc pas ton ip contrairement avec la fonction mail()

@++

Commentaire de thepopolinux le 25/11/2003 20:11:12

oups je suis dsl c du visual basic ! lol
je pensé être sur phpcs !

@++

Commentaire de Repie le 26/11/2003 08:25:31

bah biensur qu'y aura tjs l'adresse ip d'origine, les serveurs smtp fonctionnent comme ca ... et pour le probleme des adresses hors du domaine style je me connecte au serveur smtp.free.fr pour envoyer à bidule@wanadoo.fr ca marchera pas (à part si t'es chez free) parceque le serveur de free n'est pas "open relay" ... Ca marcherait avec un serveur "open relay", mais y en a plus pour la raison que tu comprends... Et si t'en trouves un y a de fortes chances qu'il soit black listé et que ton mail n'arrive jamais :(

Commentaire de thepopolinux le 26/11/2003 10:51:16

La façon la plus simple et de prendre le SMTP de ton FAI ... tout connement, il peux envoyer a nimp quel serv (en général).
Tu as un truc pour que ça soit vraiment anonyme : tu fais un prog qui ouvre un port en écoute sur la machine d'un gars à qui tu envoi le prog et tu crée un petit proto pour lui faire envoyer le mail à lui !

Commentaire de philippeH2 le 11/12/2003 16:12:35

c'est quoi W

Commentaire de chr le 01/01/2004 20:07:31

J'ai un pb de connect avec un serveur SMTP qui à besoin d'une autentification, connait tu la syntaxe (user/password) à ajouter avec le le 'RCPT TO'

merci pour ton code
A+

Commentaire de Repie le 02/01/2004 10:00:11

Pour moi y a pas d'autentification avec mot de passe pour un serveur SMTP... la seule restriction est que le destinataire du mail doit etre chez le fournisseur... un exemple sera plus clair... si tu veux envoyer un mail à qq'1 qui est chez noos par exemple il faut se connecter sur le serveur SMTP de noos... OU alors une autre solution: te connecter sur le serveur SMTP de TON fournisseur... si tu es chez wanadoo hop , tu te connectes sur smtp.wanadoo.fr et hop hop hop ...

Bon il est tard faut que je me couche ...

Commentaire de thepopolinux le 02/01/2004 11:33:29

Lol moi quand je suis enre réveillé à 10h je dors pas .... c completement débile de se rendormir le matin alors qu'on est réveillé :)

Commentaire de chr le 02/01/2004 21:55:58

Suite ,
Je voulais me connecter au serveur SMTP de mon entreprise depuis l'extérieur. Ce serveur à le mode relais de deshabilité et à besoin d'une authentification, avec oultook pas de problème ça marche je peux expédier et recevoir des mails, je voulais faire la même chose avec ton prog mais bof... Depuis j'ai essayé de l'intérieur du réseau de l'entreprise et ça fonctionne.
Si t'as une explication?

De plus, si tu as, ou connais, un source qui gère les pièces jointes avec l'explication du cryptage et la syntaxe, ça m'intéresse.
Merci & A+

Commentaire de thepopolinux le 02/01/2004 22:03:32

le serveur smtp de ton entreprise é en mode sécurisé donc en gros tu dois te faire passer pour un ordi du rézo si il é un peu con :)
après me rapel plus comen on fé sur un smtp pour s'identifier

Commentaire de pcpunch le 30/01/2004 18:45:12

Franchement top!!! 10/10, je remonte la note!!! Avec ta src g reussi a comprendre comment fonctionne le dialogue client serveur SMTP et a joindre un fichier avec le mail!! (tous ça en 10mn) !!

ça Fais 2 jours que je me cassé la tete lol (y a pas mal de src qui fonctionne mais la tienne a le merite d'etre simple et trés bien commenté!!!!)

Alors Bravo!!!!
Ps: je pense m'inspiré de ce code pour faire un ocx ou une fonction!!Si tu n'y vois pas d'incovéniant???

Commentaire de pcpunch le 30/01/2004 18:46:52

Arf g mis 10 et c tj 7 ?????? ^petit probléme la :)

Commentaire de Repie le 31/01/2004 22:13:57

Merci pcpunch ;) no prob, content que mon code t'ai servi

Commentaire de RicoNuch le 17/02/2004 12:03:43

Merci pour ce code clair et efficace.

J'ai souvent l'erreur 10048 (sckAddressInUse) : Adresse en cours d'utilisation. Ça serait dû au fait que le contrôle winsock bloque le port local pendant quelques minutes après la fermeture (Voir MSDN, Article ID: Q173619).

Si dans ton code je remplace la ligne dans le Form_Load :
    W.LocalPort = 1003
par
    W.LocalPort = 0
un nouveau port est ouvert à chaque fois et je n'ai plus l'erreur.

Avant d'utiliser, j'aimerais savoir s'il y a contre-indication.

Commentaire de stef2004 le 20/02/2004 10:18:03

ca a pas trop de rapport avec VB, mais si ca vous interesse, un super mail anonyme :
http://membres.lycos.fr/stefcho2/mail.php

Commentaire de tbbuim1 le 04/06/2004 10:35:44

Pas mal, mais il manque quelque chose d'essentiel!!!!!!!!!!!!!!!!!!!!
Dans le form_load
il faut mettre en premier
W.Close
Et oui, autrement si ya le moindre problème
La barre de progressement s'arrête en plein milieu et il est impossible d'envoyer un mail pendant plus de 10min selon le serveur utilisé...
Il affiche l'erreur: "address in use"
(Cf cours Winsock étape1 sur http://grafikm.developpez.com/vbreseau/ )

Commentaire de Repie le 05/06/2004 00:40:15

c bizare dans la logique si l'appelé (le serveur) clos la connexion le port est de nouveau utilisable (le serveur clos la connexion au moment ou l'on envoie "QUIT" il me semble) mais c'est vrai que cela fait lgt que j'ai posté... par contre si un w.close doit etre placé ce n'est pas au form_load etant donné qu'il est appelé qu'une fois au lancement, je le verrai mieux au moment ou on appuie sur le boutton envoyer
(et en regardant mon code g l'impression d'avoir pris en compte cette erreur puisque j'ai mis
If Not W.State = 0 Then W.Close)

Commentaire de SkyRocKo le 05/02/2005 22:05:16

Excellent !!! 10/10

Dommage qu'on doive spécifier le serveur smtp mais bon, c'est la vie !

Bonne continuation

++

Commentaire de tbbuim1 le 06/02/2005 10:45:02

Effectivement j'ai mis un w.close un peu partout mais rien n'y fait. j'ai toujours address in use pendant 10min lorsque j'envoi un mail avec une adresse bidon n'ont pris en compte par le serveur. Genre Moi@toi.com
Connais-tu un moyen pour éviter ce probleme de "address in use"? C'est chiant, j'essaye de mettre un mail anonyme mais le temps que j'en trouve une qui est acceptée par le serveur, une lettre de la poste à le temps d'arriver...

Commentaire de olivierXIII le 06/02/2005 10:53:52

J'avais déja eu ce probleme, qui est 'fixé'
Pour ma part j'envoi "QUIT" au serveur, j'attend qu'il me déconnecte, PUIS dans sck_OnClose il faut faire sck.CloseSocket (ou .Close avec winsock).
Sinon la connexion reste dans l'état sckClosing.

Et la plus de problème.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Envoyer un mail sans Winsock ni Outlook ! [ par Jonef ] Bonjour à tous !Voilà, en fait je souhaite faire un programme qui envois des e-mails, le problème c'est que Winsock ne marche pas donc pas possible d' Mail SMTP par WINSOCK [ par mcroteau ] J'ai présentement un problème. J'utilise Winsock pour envoyer des mails. Si j'envoie le mail par un serveur Exchange, la date d'envoie n'est pas la bo Envoyer simplement un mail avec winsock ! [ par Reelaxman ] Salut &#224; tous !J'ai trouver bon nombre de sources pour envoyer un mail avec Winsock, mais pas une seule qui ne fonctionne... A se tirer une balle comment envoyer des mail par winsock [ par dOsSpr0uTosS ] salut &#224; tous,je voudrais envoyer un mail par winsock donc je tape mailto:kurt_cobain_75@hotmail.com?Subject=test&amp;body=salutmais la il me dit Envoyer mail sans MAPI ni CDO [ par talking ] Bonjour tout le monde. Voil&#224; donc j'ai cherch&#233; sur tout le site, comment envoyer un mail avec Winsock, j'ai trouv&#233; des sources, mais le Envoi de Mail avec Winsock [ par Cjvg ] Bonjour à tous,Sous Microsoft XP et avec Visual Basic est ce que je peux:Question 1   Je souhaiterais savoir si avec Winsock je peux envoyer des mails Envoi Email [ par podzob56 ] Bonjour à tous!Je cherche à faire une macri qui reproduirait ceci:Ouverture "fichier.xls" puis"fichier"-&gt;"envoyer vers"-&gt; destinatairedonc norma recherche service web pour envoyer mail [ par djmic ] bonjour à tous,je suis à la recherche d'un service Web pour envoyer des mails. Est-ce que quelqu'un aurait un bon site qui propose des services web po Problème envoyer un mail via webmail [ par xounay ] Bonjour,Je cherche à envoyer un mail via webmail derriere serveur exchange.sachant qu'il y a une histoire de certificat+auth.Alors pour du smtp classi Envoi de mail en automatique Outlook/Exchange [ par BUZZ2K ] Bonjour,J'ai dev un logiciel sous Access. Je souhaiterais exporter des documents en PDF et les envoyer par mail.J'arrive a transformer mon etat en PDF


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales