Accueil > > > ANONYM MAIL SIMPLE ET EXPLIQUÉ (WINSOCK + PROGRESSBAR)
ANONYM MAIL SIMPLE ET EXPLIQUÉ (WINSOCK + PROGRESSBAR)
Information sur la source
Description
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
Sources du même auteur
Sources de la même categorie
Commentaires et avis
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 à 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 à tous,je voudrais envoyer un mail par winsock donc je tape mailto:kurt_cobain_75@hotmail.com?Subject=test&body=salutmais la il me dit
Envoyer mail sans MAPI ni CDO [ par talking ]
Bonjour tout le monde. Voilà donc j'ai cherché sur tout le site, comment envoyer un mail avec Winsock, j'ai trouvé 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"->"envoyer vers"-> 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
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|