|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
ENVOYER UN E-MAIL AUTONOME (SANS MAPI) *-
Information sur la source
Description
Bien le bonjour ! Voici un petit code pour envoyer des e-mails sans MAPI, la seule contrainte du code est que l'ordi doit être connecté, c'est tout. Ce code est à mettre dans un module, la fonction Envoyer retourne TRUE si l'e-mail a été envoyé, FALSE si non. Vous devez passer en (premier) parametre un control Winsock. Le dernier parametre est votre serveur mail de courrier sortant (SMTP), vous pouvez jeter un coup d'oeuil a la fin pour en avoir une liste de libres. Le code ayant été très peu testé, il peut y avoir des erreurs, merci de les signaler, ou de les réparer sans grogner. Bon dévellopement, et merci à VBCS.
Source
- Option Explicit
- Dim Sock As Winsock
-
- Function Envoyer(Socket As Winsock, Nom_Exped As String, Mail_Exped As String, Nom_Destin As String, Mail_Destin As String, Objet As String, Optional Sujet As String = "", Optional Serveur As String = "Serveur Par Defaut") As Boolean
- Envoyer = False
- Set Sock = Socket
- Sock.Close
- Sock.RemotePort = 25
- Sock.RemoteHost = Serveur
- Dim T(6) As String
- Dim mFrom As String
- Dim mTo As String
- Dim mMess As String
- mFrom = Nom_Exped & " " & "<" & Mail_Exped & ">"
- mTo = Nom_Destin & " " & "<" & Mail_Destin & ">"
- mMess = ""
- mMess = "FROM: " & mFrom & vbCrLf & "TO: " & mTo & vbCrLf
- If Sujet <> "" Then mMess = mMess & "SUBJECT:" & Sujet & vbCrLf & VbCrLf
- mMess = mMess & Objet & vbCrLf
- T(0) = "HELO " & Serveur & vbCrLf
- T(1) = "MAIL FROM: " & "<" & Mail_Exped & ">" & vbCrLf
- T(2) = "RCPT TO: " & "<" & Mail_Destin & ">" & vbCrLf
- T(3) = "DATA" & vbCrLf
- T(4) = mMess
- T(5) = VbCrLf & "." & vbCrLf
- T(6) = "QUIT" & vbCrLf
- Dim i As Integer, c As Integer
- Sock.Close
- Sock.Connect
- For c = 1 To 10
- For i = 1 To 5000
- DoEvents
- Next i
- DoEvents
- If Sock.State = sckConnected Then Exit For
- Next c
- If Sock.State <> sckConnected Then Envoyer = False: Exit Function
- For i = 0 To 6
- DoEvents
- If Not SdTxt(T(i)) Then
- Exit For
- Err.Number = 1
- End If
- Next i
- If Err.Number = 0 Then Envoyer = True
- End Function
-
- Function SdTxt(txt As String) As Boolean
- SdTxt = False
- Dim i As Integer
- Dim tmp As String * 1
- For i = 1 To Len(txt)
- tmp = Mid$(txt, i, 1)
- Sock.SendData tmp
- Next i
- If Err.Number = 0 Then SdTxt = True
- End Function
-
Option Explicit
Dim Sock As Winsock
Function Envoyer(Socket As Winsock, Nom_Exped As String, Mail_Exped As String, Nom_Destin As String, Mail_Destin As String, Objet As String, Optional Sujet As String = "", Optional Serveur As String = "Serveur Par Defaut") As Boolean
Envoyer = False
Set Sock = Socket
Sock.Close
Sock.RemotePort = 25
Sock.RemoteHost = Serveur
Dim T(6) As String
Dim mFrom As String
Dim mTo As String
Dim mMess As String
mFrom = Nom_Exped & " " & "<" & Mail_Exped & ">"
mTo = Nom_Destin & " " & "<" & Mail_Destin & ">"
mMess = ""
mMess = "FROM: " & mFrom & vbCrLf & "TO: " & mTo & vbCrLf
If Sujet <> "" Then mMess = mMess & "SUBJECT:" & Sujet & vbCrLf & VbCrLf
mMess = mMess & Objet & vbCrLf
T(0) = "HELO " & Serveur & vbCrLf
T(1) = "MAIL FROM: " & "<" & Mail_Exped & ">" & vbCrLf
T(2) = "RCPT TO: " & "<" & Mail_Destin & ">" & vbCrLf
T(3) = "DATA" & vbCrLf
T(4) = mMess
T(5) = VbCrLf & "." & vbCrLf
T(6) = "QUIT" & vbCrLf
Dim i As Integer, c As Integer
Sock.Close
Sock.Connect
For c = 1 To 10
For i = 1 To 5000
DoEvents
Next i
DoEvents
If Sock.State = sckConnected Then Exit For
Next c
If Sock.State <> sckConnected Then Envoyer = False: Exit Function
For i = 0 To 6
DoEvents
If Not SdTxt(T(i)) Then
Exit For
Err.Number = 1
End If
Next i
If Err.Number = 0 Then Envoyer = True
End Function
Function SdTxt(txt As String) As Boolean
SdTxt = False
Dim i As Integer
Dim tmp As String * 1
For i = 1 To Len(txt)
tmp = Mid$(txt, i, 1)
Sock.SendData tmp
Next i
If Err.Number = 0 Then SdTxt = True
End Function
Conclusion
J'ai apporté 2 petites rectifications. j'espère que ça marchera mieux maintenant. ---------------------- Bon, on m'a demandé un exemple et des serveurs libres (difficiles a trouver d'ailleurs, alors si vous en avez, mailez-les moi svp...). *Liste de serveurs: - mail.mageos.com *Exemple: Vous mettez dans une feuille de nom "Form1" un controle WInsock de Nom "Sock1". Propriétés du message: Exepediteur: Nom: Jean | Mail: Jean@piu.com Destinataire: Nom: Pierre | Mail: Pierre@yoa.com Sujet: "Salut c'est Jean..." Objet: "Ca va ? Je voulais te dire que ma grand-mére était championne de Karate-Do poids lourd, c'est tout... Ciao." Serveur: "mail.mageos.com" Donc vous allez envoyer ça comme ça : Envoyer Form1.Sock1, "Jean", "Jean@piu.com", "Pierre", "Pierre@yoa.com", "Ca va ? Je voulais te dire que ma grand-mére était championne de Karate-Do poids lourd, c'est tout... Ciao.", "Salut c'est Jean...", "mail.mageos.com" ... et c'est tout ! Pas dur quand même !
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

LG KP501
Entre 9€ et 159€
|