begin process at 2010 02 09 18:11:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > UTILISER LE MAPI POUR ENVOYER UN MAIL

UTILISER LE MAPI POUR ENVOYER UN MAIL


 Information sur la source

Note :
7,59 / 10 - par 27 personnes
7,59 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :mapi, envoyer, mail Niveau :Débutant Date de création :22/10/1999 Vu :40 428

Auteur : Nix

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note


 Description

Il faut ajouter dans le Projet le Controle MAPI et dans un form, il faut y mettre 1 MAPISession et 1 MAPIMessage.

Source

  • MAPISession1.SignOn
  • With MAPIMessages1
  • .MsgIndex = -1
  • .RecipDisplayName = EMAILDESTINATAIRE ' ici l adresse e-mail du destinataire
  • .MsgSubject = SUJETMAIL ' ici le sujet du mail
  • .MsgNoteText = MESSAGEMAIL ' ici le message du mail
  • .SessionID = MAPISession1.SessionID
  • .Send
  • End With
  • MAPISession1.SignOff
MAPISession1.SignOn
        With MAPIMessages1
            .MsgIndex = -1
            .RecipDisplayName = EMAILDESTINATAIRE ' ici l adresse e-mail du destinataire 
            .MsgSubject = SUJETMAIL ' ici le sujet du mail 
            .MsgNoteText = MESSAGEMAIL ' ici le message du mail 
            .SessionID = MAPISession1.SessionID
            .Send
        End With
MAPISession1.SignOff

 Conclusion

Et Voilà, le tour est joué !


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE UN PING (ICMP) EN VB 2005 (LE PLUS SIMPLEMENT DU MONDE...
IMPRIMER LE CONTENU D'UN RICHTEXTBOX
Source avec Zip Source avec une capture TESTEUR DE REGEX (REGULAR EXPRESSIONS)
Source avec Zip Source avec une capture FORCER LE REBOOT SOUS WINDOWS NT OU WINDOWS 2000 (REDÉMARRAG...
COMPTER LES MOTS DANS UNE CHAINE DE CARACTÈRE

 Sources de la même categorie

Source avec Zip Source avec une capture UPLOAD FTP VB 6 par Onin42
Source avec Zip Source avec une capture Source .NET (Dotnet) FAVORIS URL par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) DEVSSH CLIENT SFTP/SSH par iblsysteme
Source avec Zip Source avec une capture CONNEXION RÉSEAU par ABUMAI
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API par Renfield

 Sources en rapport avec celle ci

ENVOIE D'UN MAIL VIA LE SERVEUR SMTP DE YAHOO par keaoner
Source avec Zip ENVOYER UN MAIL AVEC N'IMPORTE QUELLE MESSAGERIE. par dan80
Source avec Zip ENVOI D'UN MAIL ( VORTMAIL) par sitemo
Source .NET (Dotnet) ENVOI SIMPLE DE MAIL EN VB.NET par Senynium X
Source .NET (Dotnet) ENVOIE D'UN MESSAGE E-MAIL À PARTIR DE VOTRE APPLICATION VB.... par michelsto

Commentaires et avis

Commentaire de vdu78 le 18/01/2002 23:21:35

Ce programme est très bien et très simple d'utilisation. Par contre, avec Office XP, une fenêtre apparait au moment du send, indiquant "un programme tente automatiquement d'envoyer des courriers en votre nom. Si cette action est inatendue, il se eput qu'il s'agisse d'un virus. Dans ce cas, choisissez non." 3 boutons sont alors proposés : oui, non, aide.
Comment faire pour ne plus faire afficher cette fenêtre qui empêche tout envoi automatique.
Merci de votre aide.

Commentaire de lpikachu58 le 02/02/2002 12:08:37

Eh les gens est ce qu'il y a moyen de mettre une page html à la place du message

Commentaire de adsl44 le 12/03/2002 16:03:14

Peut on utiliser MAPI dans un module sans etre obligé de créer un form avec  1 MAPISession et 1 MAPIMessage.

exemple :
Public Function EnvoiMail(nomDestinataire As String, adresseDestinataire As String, sujetMail As String, texteMail As String)
    Dim MAPISession1 As MAPISession
    Dim MAPIMessages1 As MAPIMessages
    
    MAPISession1.SignOn

Commentaire de Jordel le 14/03/2002 11:25:00

Bonjour,
cette source me parait tres bien mais j'ai un probleme avec...j'ai une erreur non specifiee sur le .send ... mais je ne sais pas pourquoi !!!

Si quelqu'un peut m'aider ... Merci d'avance.

Commentaire de cristiandan le 14/03/2002 11:40:06

Bonjour,
toujours l'erreur 32002 quand j'essaie d'attacher plusieurs pièces jointes.
  While i < List1.ListCount
  .AttachmentIndex = MAPIMessages1.AttachmentCount
  .AttachmentPathName = List1.List(i)
  i = i + 1
  Wend
Correct?????

Commentaire de cristiandan le 14/03/2002 12:06:37

j'ai trouvé sur le site de Microsoft la solution pour attacher plusieurs pièces jointes
Sub Main()
       'Logon & Sync
       MAPISession1.SignOn

       'Create Message w/Attachments then Send
       With MAPIMessages1
           .SessionID = MAPISession1.SessionID
           .Compose
           .MsgSubject = "OCX - Test Message"

           .RecipDisplayName = "YourRecipientNameHere"
           .ResolveName

           'The value 2 is passed to the Space() function in the
           'next line because there are two attachments to add.
           'These spaces act as placeholders for the attachments.
           .MsgNoteText = _
               Space(2) & vbCrLf & _
               "This message was sent from the MSMAPI32.OCX." & vbCrLf & _
               "This message contains 2 attachments."

           'Replace the AttachmentPathName values below as applicable...
           .AttachmentIndex = 0
           .AttachmentPosition = 0
           .AttachmentPathName = ("c: est1.txt")
           .AttachmentIndex = 1
           .AttachmentPosition = 1
           .AttachmentPathName = ("c: est2.txt")
           .Send
       End With

       MAPISession1.SignOff

    End Sub

et ca marche

Commentaire de Jordel le 14/03/2002 17:05:30

salut encore...
J'ai encore cette foutue erreur 32002 quand j'essaie d'envoyer un mail...

Mais comment la resoudre mes amis ?

Commentaire de adsl44 le 19/03/2002 10:49:01

J'ai Trouvé pour l'erreur 32002 lors d'un envoi avec fichier attaché !!

le .AttachmentIndex doit etre egal à 0 pour le premier fichier
et 1  , 2 ... pour les autres  !!!
Bonne lecture à tous !

Commentaire de Gestmed le 22/04/2002 11:46:51

Salut !
Comment faire pour demander l'accusé de réception ? ou sinon fonctionne bien

Commentaire de carpediem le 27/05/2002 10:36:19

Il est très bien ton code mais il ne résout pas mes affaires :
Comment éviter le message d'Outlook : "Une application tente d'accéder à vos paramètres..." ?
Ce message m'emmerde (oups pardon) depuis longtemps car je ne voudrais pas permettre aux utilisateurs d'annuler l'envoi. J'aimerai un envoi "silencieux" et qu'il n'aient pas à cliquer 2 fois sur Oui pour que ça marche !

Merci

Commentaire de epoc le 06/02/2003 18:54:07

=> pour carpediem : tu vas dans outlook/outils/options/sécurité et tu décoches "m'avertir kan d'autres applcations essayent d'envoyer des messages de ma part"

Commentaire de jcduyck le 13/10/2003 16:43:19

AU SECOURS !! personne ne connait d'explication à l'erreur 32002 ? et de solution de contournement ?
merci de votre aide.salut!

Commentaire de mirylou le 13/01/2004 22:44:14

Est-ce qu'il y a quelqu'un qui a réussi a envoyer un mail avec un fichier joint sans obtenir l'erreur 32002?

Commentaire de fr64 le 17/02/2004 15:49:45

Pour eviter l'affichage du message d'Outlook : "Une application tente d'accéder à vos paramètres...", mettre true comme paramétre de la méthode Send:
MAPIMessage1.send True

Commentaire de fr64 le 17/02/2004 15:50:38

Pour eviter l'affichage du message d'Outlook : "Une application tente d'accéder à vos paramètres...", mettre true comme paramétre de la méthode Send:
MAPIMessage1.send True

Commentaire de fr64 le 17/02/2004 16:35:45

Autant pour moi.
Pour eviter l'affichage du message d'Outlook : "Une application tente d'accéder à vos paramètres...", c'est pas simple: voir l'article
http://support.microsoft.com/default.aspx?scid=kb;FR;290499

Commentaire de fredenho le 29/03/2004 16:36:20

Bonjour,
J'ai deja envoyé des mails avec le composant Winsock, mais j'aimerais utiliser le Mapi. J'essaye le code au dessus mais des que je passe sur la ligne "MAPISession1.SignOn", il m'ouvre l'assistant de connexion Internet....Est ce que quelqu'un pourrais me dire pourkoi?? et comment virer cette fenetre, de sorte que mon mail soit envoyer de facon "transparente"!!!
Merki beaucoup!!

Commentaire de SkyRocKo le 06/02/2005 21:21:21

Hello !

Moi quand je veux envoyer un mail, Eudora se lance est-ce normal et comment empêcher cela ?

Merci d'avance

Commentaire de clementpat le 13/08/2005 00:24:25

Un des truc le plus utile que je viens d'apprendre 10/10
ceux qui n'on pas mis 10 ne se sont pas aperçu de l'utilité de cette source .

Commentaire de clementpat le 13/08/2005 00:42:19

impossible d'envoyer un fichier : bloque sur .ResolveName
erreur 32002  si ya une personne qui voit le probléme !

Commentaire de dabro le 18/10/2005 09:18:49

'Sur une page Form1 placer un contrôle MAPISession1 et un contrôle MAPIMessages1
'Pour envoyer à plusieurs destinataires, et copies conforme, et copies conformes invisibles

Sub EcrireEmail()

On Error GoTo ErrMail

'Déclaration des variables

Dim msg$, Objet$, FichierJoint1$, FichierJoint2$
Dim DestinataireEmail$, DestinataireEmailCopie$, DestinataireEmailInvisible$

'Pour les destinataires, il suffit de boucler sur une lise et d'insérer un "; " entre chaque destinataire
DestinataireEmail$ = "coucou1@pouetpouet.com; coucou2@pouetpouet.com; coucou3@pouetpouet.com"
DestinataireEmailCopie$ = "copie1@gvl.com; copie2@gvl.com"
DestinataireEmailInvisible$ = "copie1.invisible@gvl.com; copie2.invisible@gvl.com"

'Eventuel fichier joint
FichierJoint1$ = "c:\Fichier1.txt"
FichierJoint2$ = "c:\Fichier2.txt"

'Objet du message
Objet$ = "Texte de l'objet du mail"

'Texte du message
msg = "Bonjour !" & vbCrLf & vbCrLf
msg = msg & "Un petit coucou depuis Visual Basic !" & vbCrLf
msg = msg & "Voilà le fichier " & FichierJoint$


'Lancement de la procédure. Si on ne donne pas de destinataire, le carnet d'adresse est ouvert.

Form1.MAPISession1.SignOn
With Form1.MAPIMessages1
  Form1.Refresh
  .MsgIndex = -1
  'Permet de choisir un destinataire dans le carnet d'adresses si DestMail$ est vide
  If DestinataireEmail$ = "" Then
    Screen.MousePointer = 0
    Form1.Refresh
    Form1.MAPIMessages1.Show
    Form1.Refresh
    Screen.MousePointer = 11
    DestinataireEmail$ = Form1.MAPIMessages1.RecipAddress
    If Left(DestinataireEmail$, 5) = "SMTP:" Then DestinataireEmail$ = Right(DestinataireEmail$, Len(DestinataireEmail$) - 5)
    Form1.Refresh
  End If
  'Accusé de réception
  .MsgReceiptRequested = True
  
  'Destinataire principal
  .RecipIndex = 0
  .RecipType = mapToList
  .RecipDisplayName = DestinataireEmail$ 'Adresse e-mail du destinataire principal
  
  'Destinataire en copie conforme
  .RecipIndex = 1
  .RecipType = mapCcList
  .RecipDisplayName = DestinataireEmailCopie$ 'Adresse e-mail du destinataire Destinataire en copie conforme
  
  'Destinataire en copie conforme invisible
  .RecipIndex = 2
  .RecipType = mapBccList
  .RecipDisplayName = DestinataireEmailInvisible$    'Adresse e-mail du destinataire en copie conforme invisible
  
  .MsgSubject = Objet$                    'Sujet du mail
  
  'Message avec 2 fichiers joints
  .MsgNoteText = Space(2) & msg$          'Space(2) pour 2 fichiers joints, 5 pour 5 fichiers... et le message du mail

  .AttachmentIndex = 0
  .AttachmentPosition = 0
  .AttachmentPathName = FichierJoint1$

  .AttachmentIndex = 1
  .AttachmentPosition = 1
  .AttachmentPathName = FichierJoint2$

  
  'Message sans fichier joint
  '.MsgNoteText = msg$                     'Message du mail
  
  .SessionID = Form1.MAPISession1.SessionID
  Screen.MousePointer = 0

  'Pour éviter le message "un programme tente automatiquement d'envoyer des courriers en votre nom..."
  'Mettre Send True
  .Send True
End With
Form1.MAPISession1.SignOff

MsgBox "Envoyé !" & vbCrLf & vbCrLf & "Si votre messagerie n'est pas active, il faut le faire et choisir d'envoyer les messages contenus dans la boîte d'envoi.", vbInformation, "Mail expédié"

Exit Sub

ErrMail:
Screen.MousePointer = 0

Select Case Err
  Case 32001
    MsgBox "Le message n'a pas été envoyé. Processus annulé par l'utilisateur.", vbExclamation, "Message NON envoyé !"
    Form1.MAPISession1.SignOff
    Exit Sub
  
  Case 32003
    MsgBox "Le message n'a pas été envoyé. Echec de la connexion.", vbExclamation, "Message NON envoyé !"
    Form1.MAPISession1.SignOff
    Exit Sub
  
  Case 32026
    MsgBox "Le message n'a pas été envoyé.", vbExclamation, "Message NON envoyé !"
    fMain.MAPISession1.SignOff
    Exit Sub

  Case Else
    MsgBox "Erreur " & Err & " " & Error
    Form1.MAPISession1.SignOff
    Exit Sub

End Select

End Sub

Commentaire de hackoustik le 02/04/2006 19:39:32

ya moyen que la boite denvois que mapi ouvre n'apparaisse pas, en plus jai meme la demande dautorisation de ooutlook qui souvre, moi il aurait falu que rien napparaisse.

bonne soirée à tous ;)

Commentaire de ifaza le 04/08/2006 12:33:03

il faut mettre devant mapimessage.send la valeur true

Commentaire de devforce1 le 20/09/2006 10:39:49

hello a tous...

J'utilise le controle mapi depuis quelques temps et pour envoyé un mail pas de soucis.
Ca se complique quand on vut en envoyé plusieurs a la suite sans fermé le programme, je m'explique...

J'envoi 3 mails de suite avec des destinataires différents (et pas le meme nombres a chaque mails)
le premier mail possede les destinataires A, B et C
le second mail possede les destinataires D
le troisieme mail possede les destinataires E et F

quand je code ca, pas de soucis particulier mais la réalité en est autrement, dans ma boite outlook j'ai en realité :
1er mail avec A, B et C ==> Pas de soucis
2em mail avec D, B et C ==> Problème
3em mail avec E, F et C ==> Problème

On a essayé de fermé la session puis la reouvrir, de fermé le mapisession et mapimessage, toujours pareil.
On a essayé de modifié les propriété recipindex et autres et toujours pareil.

Si quelqu'un avait une solution ca serait bien cool. On commence a bien se prendre la tete et les  automatisme ne le sont plus vraiment.

Ps : ca fais la meme chose avec les pieces jointes

Merci d'avance

Commentaire de devforce1 le 20/09/2006 11:14:55

Apres récupération d'un code pour Mapi d'un autres programmes j'ai visiblement trouvé comment resoudre mon soucis.
Il faut utilisé la methode mapimessage.Compose qui vide le tampon de composition et reassigne la valeur -1 a la propriété Msgindex.

J'espere que ca pourra servir a d'autres. ;)

A bientot

Commentaire de adamo901 le 28/02/2007 12:29:44

Bonjour :
Comment Envoyer un email avec un nom d'expediteur différent
(c'est possible avec WinSock) mais, est-il possible avec mapi

Commentaire de sebauggiv le 15/06/2007 14:36:50

bonjour
j'ai l'erreur d'execution 48389
??? j'ai pourtant copier le code source d'origine et rajouté les 2 contoles. Help

Commentaire de philbar71 le 21/03/2008 15:12:59 9/10

Extra !

Commentaire de VestaX le 26/03/2008 17:20:19

ce code tu dois le mettre entre

Private Sub Form_Load() et End Sub c'est bien ca? et si oui, il faut mettre quoi entre Private Sub Command1_Click() et End Sub ???

désolé, mais je débute, j'ai du mal a apprendre

Commentaire de grarestephane le 06/12/2009 20:08:35

Comment envoyer au format HTML ? C'est possible ? Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Envoyer un mail par proxy & sans MAPI URGENT !! [ par Strikenet ] Salut,Je crois que j'ai tout dit ;)Merci d'avance & @+ MAPI : Comment envoyer un mail avec fichier attaché, à plusieurs personnes [ par Nouch ] Salut tout le monde,j'ai un problème URGENT à resoudre.J'aimerais envoyer un mail avec fichier attaché à plusieurs personnes sur VB6 (windows 2000) en PROBLEME POUR ENVOYER UN MAIL AVEC MAPI !! [ par RaZoR ] Je voudrais envoyer un mail avec un fichier joint . Pour cela j'ai trouvé MAPI !! Je l'ajoute à mon projet et je mets chacun des OCX sur ma Form !! J' comment envoyer un mail au format HTML avec MAPI ou DDO [ par sorianoc ] comment envoyer un mail au format HTML avec MAPI ou DDO?je galere vraiment la...... merci 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 [VB2005] Envoyer un mail par MAPI [ par EXCLUSIF ] Bonjour,Peut-on en VB2005 envoyer un mail en utilisant MAPI sans utiliser msmapi.ocx ? Y'a til une classe dans le Fx 2.0 qui gère ça ?MerciLudo 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 plusieur destinataire Mail [ par inraf ] Bonjourj'ai un petit problème j'ai un code pour envoyer un mail via un form.Jusque la pas de problème mais maintenant je voudrais envoyer le mail a pl Comment faire pour envoyer un mail [ par johann36 ] Bonjour,Des problèmes j'en ai et en veux-tu en voilà. Je commence à désespérer je me dis que je vais peut être vous donner le cahier des charges et vo Envoyer un mail avec VB6 [ par piou62 ] BonjourVoila je voudrais via VB6 envoyer un mail à plusieurs personnes dont la liste sera dans un tableau dynamique.J'ai trouvé comme code :Declare Fu


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 1,092 sec (3)

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