Vmail x - client smtp pour l'envoi de mail + exe/activex !

Soyez le premier à donner votre avis sur cette source.

Vue 9 159 fois - Téléchargée 1 596 fois

Description

C'est une de mes grosses réalisations que je vous présente ici...
Tout est y est : Design, code bien gras, fonctionel, etc...

Ce programme est un client SMTP qui permet d'envoyer des mails, comme un tout bête anonymiseur en utilisant Winsock.

Mais il est joli (l'interface est adaptée de celle du site vbfrance, merci Nix, même si je ne t'ai pas demandé ton autorisation)... Et en plus, ce programme est UN EXECUTABLE ACTIVE X !

Un EXE/ActiveX ??? Pourquoi faire ? Et bien, en l'incluant dans les références de vos programmes VB/Access ou autre, vous pourrez utiliser les méthodes/propriétés du programme pour envoyer un mail, créer/lire un fichier ini, crypter/décrypter des fichiers, etc...

Il reste quelques bugs, comme la définition du type MIME d'un fichier... Qui sous NT, par exemple, renvoie toujours "Application Octet/Stream"... L'utilisation de l'ajout de destinataire sous forme de collection (bien que la collection existe, elle ne fonctionne pas encore !!!), le codage au format MIME qui est très lent (evitez les pieces jointes de plus de 500 Ko) et bien sur les bugs qui restent à éliminer...

Pour l'utilisation sous forme d'ActiveX, je joint le code ci dessous :

Source / Exemple :


' Après avoir ajouté la référence à vmailx.exe dans votre programme
' Voici le code à ajouter, par exemple sur clic d'un bouton

Sub cmdMail_OnClick()
    ' Utilisation de l'envoi de mail
    
    Dim MyMail As vMailX.SendMail
    Set MyMail = New vMailX.SendMail
    
    ' On vérifie la connection à Internet
    If MyMail.EstConnecte = True Then
    
        With MyMail
            .AdresseFrom = "monadresse@moncompte.fr" ' Nom du destinataire
            .AdresseFromName = "Mon Nom" ' Nom de l'emmeteur
            
            ' Ancienne méthode d'ajout de destinataire
            '.AdresseTo = "destinataire1@compte.fr;destinataire2@compte.fr" ' Destinataire
            ' Nouvelle méthode sous forme de collection
            .Destinataire.Add "d1", "destinataire1@compte.fr", MailTo
            .Destinataire.Add "d2", "destinataire2@compte.fr", MailCc
            
            .AttacherFichier.Add , "C:\autoexec.bat", "Fichier Autoexec" ' Ajout d'un fichier
            .DomainSource = "mon.ordinateur.fr" ' Nom du PC pour le HELO au serveur SMTP
            .MailObjet = "Objet du mail" ' Objet du mail
            .MailFormat = eTEXT ' Format du mail
            .MailContenu = "Corps du mail au format texte" ' Corps du mail
            .MailPriorite = eNormalPriority ' Priorité du Mail
            .MailServeur = "mail.serveursmtp.fr" ' Serveur de mail SMTP
            .TimeOut = 30 ' en secondes
            .xMailer = "MyMail Mailer" ' Nom du Mailer qui a envoyé le mail
            ' Si le time out est dépassé, on retente l'envoi
            .RéessayerEnvoi = True
            ' On affiche la fenêtre de progression
            .AfficherEnvoi = True
        End With
    
        MyMail.MailSend
        
        If MyMail.ErreurNumber = 0 Then
            MsgBox "Message correctement envoyé !"
        Else
            MsgBox MyMail.ErreurDescription
        End If
        
    End If
End Sub

Sub cmdSaveValue_Click()
    ' Utilisation des fichiers INI
    
    Dim MyIni As vMailX.Ini
    Set MyIni = New vMailX.Ini
    
    With MyIni
        .IniFile = "C:\myinifile.ini"
        .WriteIni "TEST", "CONFIG", "ceci est un test"
    End With
    
    MsgBox MyIni.ReadIni("TEST", "CONFIG", "Je sais pas ?")
End Sub

Sub cmdGetInfo_Click()
    ' Utilisation des infos systèmes
    
    Dim MyInfo As vMailX.LocalInfo
    Set MyInfo = New vMailX.LocalInfo
    
    With MyInfo
        MsgBox "Nom de l'ordinateur : " & .CurrentComputer
        MsgBox "Nom de l'utilisateur : " & .CurrentUser
        MsgBox "Version de Windows : " & .WindowsVersion
        ' etc...
    End With
End Sub

' Ne sont pas présent les démonstrations pour Cryptage et Codage...
' (c) Cyril PORTET, Janvier 2002 - Avril 2002
' vMail X version 0.1.60

Conclusion :


Note du 23/05/2002 :
Merci de me remonter les bugs, les problemes, les ameliorations a apporter... Et n'hesitez pas à vous en servir, pour l'instant, c'est du tout FREE !

Note du 27/05/2002 :
J'ai fait une mise à jour partielle du code.
Maintenant le destinataire du message se renseigne sous forme d'une collection comme pour les pieces jointes, j'ai corrigé 2 ou 3 petits bugs mineurs, et là j'attaque le format MIME et l'encodage en version plus rapide...

A+
Cyrilp

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

anice2
Messages postés
6
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
9 février 2008

Vraiment trop bien la source mais il me reste un petit soucis : je voulais mettre un login et pass pour le serveur smtp et j'ai pas pu le faire !! si c possible d'ajouter cette option et qu'on puisse ce connecté avec son propre serveur smtp ca va etre sympa .
Merci d'avance et bon courage
cs_JLN
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013

Super et je l'utilise depuis quelques temps, si une nouvelle version est prête je te suggere de la placer ici tu auras toujours autant de fan pour ce type de developpement. Je met 10 parce qu'il n'y a pas plus !

Bonne prog

JLN
cs_pledoux
Messages postés
147
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
6 mars 2007

Vraiment bien mais, pour être vraiment complet, il manque deux choses :
1 - le principe de transparence (cas d'une ligne avec uniquement un point) ex :
debut message
.
fin message
dans ce cas la fin du message n'est pas transmise. Il faut que tu double le point (toute séquence <CRLF>.<CRLF> doit être remplacée par <CRLF>..<CRLF>. Le serveur SMTP interprête pour supprimer le second point.
2 - La gestion du destinataire en copie cachée n'est pas complétement implémentée. Comme pour "to :" et "cc :" il faut envoyer "bcc :" dans la section data
syllef
Messages postés
3
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
24 novembre 2004

Le composant est très bien
Mais, je n'arrive pas à joindre des fichiers
Déjà, il y a une erreur dans le script d'utilisation du composant :
.AttacherFichier.Add , "C:\autoexec.bat", "Fichier
Le premier paramètre n'est pas optionnel.

Lorsque je joins un fichier au mail, il est envoyé sans le fichier...
Pouvez vous m'aider en me donnant un exemple d'un mail avec fichier joint?

Merci
cs_jbel
Messages postés
5
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
11 avril 2006

Pas mal ce prog... même très bien je dois dire! C'est mieux que ce que je cherchais.
J'ai juste un petite question quand même:

en utilisant un serveur "Microsoft Exchange Server" j'arrive à envoyer des mails en interne en mettant le nom de mon serveur, mais comment faire pour envoyer des mails en externe???

Merci ++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.