Envoyer mail

mmatuvu Messages postés 6 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 29 juin 2012 - 27 avril 2012 à 22:41
mmatuvu Messages postés 6 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 29 juin 2012 - 28 avril 2012 à 21:08
Bonjour

voila pas mal de temps que j'arpente .. ce forum
malgré mes recherches .. sur le forum
je cherche le moyen le plus simple pour envoyer un mail
simplement avec winsock ..le plus simplement possible
pas de textbox ..de label de bouton
rien de tous cela .. le basique
avec des variables comme cela

serveur = "SMTP.FREE.FR"
port = "25"
expéditeur = "trucmuche@free.fr"
destinataire = "trucmuche@free.fr"
sujet = " rien "
corpsdumessage = "blallablaba"

simplement cela..

merci d'avance

4 réponses

ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
27 avril 2012 à 23:11
Bonjour mmatuvu,

Pour envoyer un mail, le plus simple est de lancer le gestionnaire de mails et de le remplir à la main.

Winsock je ne sais pas ni s'il peut envoyer un mail, ni comment, pour ma part je l'utilisais pou envoyer des message entre deux applications identiques qui dialoguait par MP (en connaissant les IP réciproques)

J'ai fait un chat personnel gratuit, ici :
http://irolog.free.fr/_gratuit/IMchatPerso.exe

Et la page des gratuits est là :
http://irolog.free.fr/gratuit.htm

INTERNET  WinSock 
Adresse IP de son ordinateur
objet_affiche = Winsock_1.LocalIP
objet Winsock (composants +++ (ici exemple nom = Winsock1))
Transmission du port (canal)
Winsock_1.LocalPort = numero_port
Mise en écoute de l'émetteur (serveur)
Winsock_1.Listen
Connexion au récepteur (client)
Winsock_2.Connect adresse_IP, numero_port

SEQUENCE DE TRANSMISSION
-1- Transmission du port
-2- Mise en écoute du serveur
-3- Connexion au client


Cordialement, Joe.
0
mmatuvu Messages postés 6 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 29 juin 2012
27 avril 2012 à 23:26
Slt

merci pour une réponse aussi rapide ..
mais moi , je voudrais envoyer un mail en auto ..avec des données récupérer
sur des sondes de températures..
je voudrais que le programme m'envoie les données sur mail automatique toutes les heures


j'ai essayer avec cela .. mais cela ne marche pas

Private Sub Command1_Click()
Winsock1.Connect "serveur", 25
End Sub
Private Sub Winsock1_Connect()
Winsock1.SendData "HELO seveur" & vbCrLf
Winsock1.SendData "MAIL FROM:<envoyeur>" & vbCrLf
Winsock1.SendData "RCPT TO:<cible>" & vbCrLf
Winsock1.SendData "DATA" & vbCrLf & "blablabla" & vbCrLf & "." & vbCrLf & "QUIT" & vbCrLf
End Sub

le programme n'est pas de moi

alors si vous avez une idées ..

merci comme même

@+
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
28 avril 2012 à 09:51
bonjour mmatuvu,

Tiens j'ai trouvé dans la faq vb6 sur free, à cette adresse :

http://faq.vb.free.fr/index.php?question=2

Amuse toi bien

Utilisation des sockets et implémentation des protocoles POP3, SMTP, etc.
La solution idéale, mais plus difficile à mettre en oeuvre, est d'utiliser Winsock (le contrôle ou l'API) et d'implémenter soi-même les protocoles POP3, IMAP et SMTP. On pourra ainsi envoyer des messages depuis un poste ne possèdant ni Office, ni Outlook Express, ni aucun autre logiciel de messagerie. Ces protocoles sont parfaitement décrits par des RFC, dont on trouvera la liste avec les liens hypertextes correspondants dans la section "Pour Aller plus loin" en fin d'article.

Le programme suivant est un exemple d'implémentation du protocole SMTP permettant d'envoyer des e-mails en employant le contrôle Winsock :

Option Explicit

Private Enum SMTPSessionState
    SMTP_CONNECT
    SMTP_HELO
    SMTP_MAIL
    SMTP_RCPT
    SMTP_DATA
    SMTP_SENDMESSAGE
    SMTP_QUIT
End Enum

Private CurrentSMTPSessionState As SMTPSessionState

' Copies locales
Private lcSenderDisplayName     As String
Private lcSenderAddress         As String
Private lcRecipientDisplayName  As String
Private lcRecipientAddress      As String
Private lcSubject               As String
Private lcMessage               As String

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    Dim sServerResponse As String
    Dim sDataToSend     As String
    Dim MessageLines()  As String
    Dim i               As Long

    ' Récupère la réponse du serveur
    Winsock1.GetData sServerResponse

    If Left(sServerResponse, 1) "2" Or Left(sServerResponse, 1) "3" Then

        Select Case CurrentSMTPSessionState
            Case SMTP_CONNECT
                CurrentSMTPSessionState = SMTP_HELO ' Change l'état de la session
                
                ' Récupère le nom de domaine
                sDataToSend = Right(lcSenderAddress, Len(lcSenderAddress) - InStr(lcSenderAddress, "@"))
                
                ' Et envoie la commande HELO au serveur
                sDataToSend = "HELO " & sDataToSend & vbCrLf
                Winsock1.SendData sDataToSend

            Case SMTP_HELO
                CurrentSMTPSessionState = SMTP_MAIL ' Change l'état de la session

                ' Et envoie la commande MAIL au serveur
                sDataToSend = "MAIL FROM:<" & lcSenderAddress & ">" & vbCrLf
                Winsock1.SendData sDataToSend

            Case SMTP_MAIL
                CurrentSMTPSessionState = SMTP_RCPT ' Change l'état de la session

                ' Et envoie la commande RCPT au serveur
                sDataToSend = "RCPT TO:<" & lcRecipientAddress & ">" & vbCrLf
                Winsock1.SendData sDataToSend

            Case SMTP_RCPT
                CurrentSMTPSessionState = SMTP_DATA ' Change l'état de la session

                ' Et envoie la commande DATA au serveur
                sDataToSend = "DATA" & vbCrLf
                Winsock1.SendData sDataToSend

            Case SMTP_DATA
                CurrentSMTPSessionState = SMTP_SENDMESSAGE  ' Change l'état de la session

                ' Envoie les en-têtes du message
                Winsock1.SendData "Subject: " & lcSubject & vbLf
                Winsock1.SendData "From: " & Chr(34) & lcSenderDisplayName & Chr(34) & " <" & lcSenderAddress & ">" & vbLf
                Winsock1.SendData "To: " & Chr(34) & lcRecipientDisplayName & Chr(34) & " <" & lcRecipientAddress & ">" & vbLf

                ' Scinde le message en lignes
                MessageLines = Split(lcMessage, vbCrLf)

                ' Envoie chaque ligne du message
                For i = 0 To UBound(MessageLines)
                    sDataToSend = MessageLines(i)
                    If Left(sDataToSend, 1) = "." Then
                        sDataToSend = "." & sDataToSend
                    End If
                    Winsock1.SendData sDataToSend & vbLf
                Next

                ' Envoie un point pour indiquer la fin de l'envoie des données
                Winsock1.SendData vbCrLf & "." & vbCrLf

            Case SMTP_SENDMESSAGE
                CurrentSMTPSessionState = SMTP_QUIT ' Change l'état de la session
                
                ' Affichage d'un message de confirmation, à supprimer dans le code définitif
                MsgBox "Le message envoyé avec succès.", vbInformation

                ' Et envoie la commande QUIT au serveur
                Winsock1.SendData "QUIT" & vbCrLf

            Case SMTP_QUIT
                Winsock1.Close  ' Ferme la connexion
        End Select
    Else
        MsgBox "Erreur SMTP : " & sServerResponse, vbExclamation
        CurrentSMTPSessionState = SMTP_QUIT
        Winsock1.SendData "QUIT" & vbCrLf
    End If
End Sub

Private Sub Winsock1_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 "Winsock Error number " & Number & " : " & Description, vbExclamation
    Winsock1.Close
End Sub

Public Sub SendMail(ByVal SMTPServeur As String, _
                   ByVal SenderAddress As String, _
                   ByVal RecipientAddress As String, _
                   ByVal Subject As String, _
                   ByVal Message As String, _
                   Optional ByVal SenderDisplayName As String, _
                   Optional ByVal RecipientDisplayName As String)

    lcSenderDisplayName = Trim(SenderDisplayName)
    lcSenderAddress = Trim(SenderAddress)
    lcRecipientDisplayName = Trim(RecipientDisplayName)
    lcRecipientAddress = Trim(RecipientAddress)
    lcSubject = Trim(Subject)
    lcMessage = Trim(Message)

    CurrentSMTPSessionState = SMTP_CONNECT
    Winsock1.Connect Trim$(SMTPServeur), 25
End Sub

'
' Exemple D'utilisation
'
Private Sub Command1_Click()

    Call SendMail("smtp.serveur.com", "jean.dubois@serveur.com", "john.smith@serveur.com", _
                 "Petit test", "Hello !", "Jean Dubois", "John Smith")
End Sub



Dommage que tu ne fasses pas en vbNet car c'est plus court !

Cordialement, Joe.
0
mmatuvu Messages postés 6 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 29 juin 2012
28 avril 2012 à 21:08
Slt

Merci encore .. pour ta réponse ..
en règle général .. j’essaie toujours par moi même de trouver ..
mais la après plusieurs essai infructueux , je commencer a baisser les
bras .. et la une question .. 2 réponses en moins de 24hrs ..
je suis le cul ..

alors .. merci ..

pour ta disponibilité ..et pour le programme ..qui fonctionne ..!!!!!!!!!!

Merci beaucoup

@+
0
Rejoignez-nous