VB + Outlook

cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009 - 16 juin 2003 à 10:01
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009 - 18 juin 2003 à 12:01
Nanto

Bonjour tout le monde,

j'ai besoin de faire une appli qui envoie des mails, or j'ai pas envie de refaire une interface utilisateur alors qu'il y a Outlook ou Outlook Express sur les postes.
Je voudrais que mon appli appelle les formulaires d'envoie de message des ces 2 softs. Une idée ???

Utilisation de Mapi ????

Merci par avance pour les réponses

@ pulse

7 réponses

Delbeke Messages postés 200 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 18 novembre 2005
16 juin 2003 à 11:54
En utilisant Mapi.
voici un extrait d'un de mes sources qui fait çà

Private Sub SendEmail(EmailAdr as string)
lblRapport = "Préparation de l'email en cours ....": DoEvents
MAPISession1.DownLoadMail = False
MAPISession1.NewSession = True
MAPISession1.SignOn
With MAPIMessages1
.SessionID = MAPISession1.SessionID
'purge des destinataires
If .RecipCount > 0 Then
.RecipIndex = 0
While .RecipCount > 0
.Delete 1
Wend
End If
'purge des messages
If .MsgCount > 0 Then
.MsgIndex = 0
While .MsgCount > 0
'purge des fichiers attachés au message
.AttachmentIndex = 0
While .AttachmentCount > 0
.Delete 2
Wend
.Delete 0
Wend
End If
.MsgIndex = -1
.MsgSubject = "Résultats de " & CStr(frmMain.Caption) 'sujet du message
.MsgNoteText = "Documents joints" & vbCrLf & " " 'Texte de l'Email
'.RecipIndex = .RecipCount + 1
.RecipType = mapToList
.RecipDisplayName = EmailAdr
.RecipAddress = .RecipDisplayName
.AddressResolveUI = True
.ResolveName
'================
'Fichier attaché
.AttachmentIndex = .AttachmentCount
.AttachmentName = "Result.tif" 'fichier à attacher
.AttachmentPathName = App.Path & "\Result.tif" 'chemin complet + nom du fichier
.AttachmentPosition = Len(.MsgNoteText) - 1
.AttachmentType = mapData 'le fichier joint est du type fichier de données
'==========================
'afficher carnet adresse
'.AddressEditFieldCount = 2
'.Show
'.save

.Send True
End With
MAPISession1.SignOff
lblRapport = "Message dans la corbeille d'émission"
End Sub

Jean-Luc
0
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
16 juin 2003 à 15:03
Nanto

je te remercie de ta réponse, j'avais déjà trouvé tes sources en parcourant ce forum (je m'en suis largement inspiré ;o))

Cependant je souhaiterais faire apparaitre la fenêtre OutLook qui permet d'écrire un nouveau message...

d'autre part j'ai un autre problème, je fais bien apparaitre le carnet d'adresse, or comment récupérer les adresses sélectionnées dans une textbox ???

Merci de votre aide

@ pulse
0
Delbeke Messages postés 200 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 18 novembre 2005
16 juin 2003 à 16:45
Pour faire appraitre la fenetre d'outlook totalement vide il faut faire

Private Sub Command1_Click()
MAPISession1.DownLoadMail = False
MAPISession1.NewSession = True
MAPISession1.SignOn
With MAPIMessages1
.SessionID = MAPISession1.SessionID
'purge des destinataires
If .RecipCount > 0 Then
.RecipIndex = 0
While .RecipCount > 0
.Delete 1
Wend
End If
'purge des messages
If .MsgCount > 0 Then
.MsgIndex = 0
While .MsgCount > 0
'purege des fichiers attachés au message
.AttachmentIndex = 0
While .AttachmentCount > 0
.Delete 2
Wend
.Delete 0
Wend
End If
.MsgIndex = -1
.Send True
End With
MAPISession1.SignOff
lblRapport = "Message dans la corbeille d'émission"
End Sub

Pour lautre question, je cherche et te répondrai un peu plus tard

Jean-Luc
0
Delbeke Messages postés 200 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 18 novembre 2005
16 juin 2003 à 17:05
Voila le reste de la réponse

Private Sub Command2_Click()
Dim iPnt As Integer
Dim NbAdr As Integer
Dim Msg As String
MAPISession1.DownLoadMail = False
MAPISession1.NewSession = True
MAPISession1.SignOn
With MAPIMessages1
.SessionID = MAPISession1.SessionID
'purge des destinataires
If .RecipCount > 0 Then
.RecipIndex = 0
While .RecipCount > 0
.Delete 1
Wend
End If
'==========================
'afficher carnet adresse
.MsgIndex = -1
.AddressEditFieldCount = 2
.Show
'construction liste des destinataires dans MSG
Msg = ""
NbAdr = .RecipCount
For iPnt = 0 To NbAdr - 1
.RecipIndex = iPnt
Msg = Msg & .RecipAddress & " (" & .RecipDisplayName & ")" & vbCrLf
Next
MsgBox Msg
End With
MAPISession1.SignOff
End Sub

Jean-Luc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
16 juin 2003 à 17:09
Nanto

un énorme merci pour tes réponses Jean-Luc. J'ai testé rapido, c'est tout nickel, il ne me reste plus qu'à adapter à mon appli.

Merci pour ta rapidité et ton efficacité

@ bientôt
0
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
17 juin 2003 à 11:46
Nanto

Dernière petite précision :

comment je fais pour récupérer les infos de connection à Outlook dans le cas Exchange + Outlook, car au moment de me logger à la session mapi, il me demande mon profil.

Merci par avance

@ pulse
0
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
18 juin 2003 à 12:01
Nanto

Salut, j'ai trouvé
pour ceux que ça peut aider :

MAPISession1.UserName = "Paramètres Microsoft Exchange"
MAPISession1.LogonUI = False
MAPISession1.SignOn
...
MAPISession1.SignOff
voilà, @ plus

:-p
0
Rejoignez-nous